标签: intersection

二维线段与矩形的交点

我使用 C# 和 XNA。我需要任何语言的算法来获得带有二维线段的矩形的边界交点。

我已经为我的问题寻找答案 3 个多小时了,但找不到有效的解决方案。

有人可以帮我吗?

非常感谢。

c# xna geometry intersection segment

5
推荐指数
1
解决办法
1万
查看次数

Java中的相交重叠间隔

我有一组可能重叠的日期范围输入。我想创建具有调整日期的新日期范围,而不是组合这些重叠的日期范围,例如:

|---------------------–|
        |-----| 
            |--------------–|
Run Code Online (Sandbox Code Playgroud)

最终应该是:

|-------|---|-|--------|----|
Run Code Online (Sandbox Code Playgroud)

有没有一种有效的方法可以用 Java 解决这个问题?

提前致谢!

更新: 我没有在我的第一个问题中提到我自己的方法,所以这里是:我只是简单地取一个时间间隔的开始和结束日期并将其添加到一个排序集中。之后,我会遍历该集合并根据重新排序的日期创建新的间隔。

java intersection intervals

5
推荐指数
3
解决办法
1万
查看次数

Python 3 - 多个字典键的交集

下面是我的代码,任何人都可以通过使用 python 3 内置库函数帮助我优化过程吗?

Dict1 = {'ky1':1, 'ky2':2,'ky_3':3}
Dict2 = {'ky1':4, 'ky2':5,'ky_4':6}
Dict3 = {'ky2':7, 'ky3':8,'ky_5':9}
D = [Dict1,Dict2,Dict3]
Keys_list = []
for i in D:
   tmp = list(i.keys())
   Keys_list.append(tmp)
Output = list(set.intersection(*map(set,Keys_list)))
Run Code Online (Sandbox Code Playgroud)

我的Dict1、Dict2、Dict3 是大字典
谢谢

python dictionary intersection key python-3.x

5
推荐指数
1
解决办法
2284
查看次数

Python与子字符串的交集

我有两套:

a = set(['this', 'is', 'an', 'apple!'])
b = set(['apple', 'orange'])
Run Code Online (Sandbox Code Playgroud)

我想找出 (a) 中是否有任何 (b) 包括子字符串。通常我会这样做:

c = a.intersection(b)
Run Code Online (Sandbox Code Playgroud)

然而,在这个例子中,它会返回一个空集 'apple' != 'apple!'

假设我无法从 (a) 中删除字符并且希望不创建循环,有没有办法让我找到匹配项?

编辑:我希望它从 (b) 返回匹配项,例如我想知道“苹果”是否在集合 (a) 中,我不希望它返回“苹果!”

python string intersection substring set

5
推荐指数
1
解决办法
1433
查看次数

R如何找​​到列表中向量子集的交集

我有一个向量(字符)列表。例如:

my_list <- list(c("a", "b", "c"), 
                c("a", "b", "c", "d"), 
                c("e", "d"))
Run Code Online (Sandbox Code Playgroud)

对于所有这三个矢量的交集,我可以使用:Reduce(intersect, my_list)。但是正如您所看到的,所有三个向量中都没有共同元素。

那么,如果我想找到在列表中“至少”出现一定次数的公共元素怎么办?如:somefunction(my_list, time=2)会给我c("a", "b", "c", "d")因为那些元素出现两次。

谢谢。

intersection r list vector

5
推荐指数
1
解决办法
327
查看次数

找到不在任何旋转矩形内的点

我正在寻找一种算法,它可以快速(我受到性能的严重限制)在圆内找到一个点,该点位于提供的集合中的所有矩形之外(这些矩形可以旋转)。或者,找到一个圆心在圆 B 内的圆 A,其中圆 A 不与一组线段相交。

我能想出的唯一解决方案是循环遍历点的样本,然后遍历每个点的矩形。但是因为我的空间是连续的,所以很痛苦。我基本上只对一个不相交的点感到满意,但也会有不存在这样的点的情况。在后一种情况下,我最好尝试找到一个交叉点最少的点,或者能够找到不存在这样的点的答案。

有谁知道有什么算法可以在小于 O(n^2) 的时间内完成这个任务?任何有助于确定好的候选点的东西也会很棒。

这种情况的一个典型例子是:很多大矩形和小圆圈,我希望在其中找到一个点(这里用蓝色表示)。许多矩形完全落在圆之外是很常见的,而且圆被完全覆盖也是很常见的。只有一小组长度和宽度往往用于矩形。

在此处输入图片说明

algorithm intersection

5
推荐指数
1
解决办法
154
查看次数

Geopandas 覆盖交叉点

我试图找到两组多边形的交集,其中一组是从人口普查数据产品(poly1)中选择的一些人口普查区域,另一组由我自己定义的多边形(poly2)。我很想知道哪些人口普查区属于我的每个多边形(交点),然后从那里计算相交的人口普查区的面积等等。

我使用了以下代码:

import geopandas as gp
gp.overlay(censustracts, mypolygons, how = 'intersection')
Run Code Online (Sandbox Code Playgroud)

这适用于不涉及太多人口普查区域的情​​况。我精心挑选了一些案例(5000~40,000 个人口普查区)并在 ArcMap 中进行了交集计算并交叉检查了结果。似乎 geopandas.overlay 给出的结果不太准确:有时不应该将给定的“相交”人口普查区算作相交;有时应该交叉的人口普查区域会丢失。

此外,如果我只从我的自定义多边形 (poly2) 中选择一个多边形并选择它应该与之相交的正确人口普查区域,则 geopandas.overlay 可以正常工作。

我不知道为什么会这样。似乎只讨论了 geopandas 覆盖的速度(https://github.com/geopandas/geopandas/issues/400),但我没有发现任何关于准确性的信息。我错过了什么吗?

python intersection geopandas

5
推荐指数
0
解决办法
625
查看次数

Pandas 中作为列的集合的交集

我有一个 df,例如:

df=pd.DataFrame.from_items([('i', [set([1,2,3,4]), set([1,2,3,4]), set([1,2,3,4]),set([1,2,3,4])]), ('j', [set([2,3]), set([1]), set([4]),set([3,4])])])
Run Code Online (Sandbox Code Playgroud)

所以它看起来像

>>> df
              i       j
0  {1, 2, 3, 4}  {2, 3}
1  {1, 2, 3, 4}     {1}
2  {1, 2, 3, 4}     {4}
3  {1, 2, 3, 4}  {3, 4}
Run Code Online (Sandbox Code Playgroud)

我想计算 df.i.intersection(df.j) 并将其分配为列 k。也就是说,我想要这个:

df['k']=[df.i.iloc[t].intersection(df.j.iloc[t]) for t in range(4)]

>>> df.k
0    {2, 3}
1       {1}
2       {4}
3    {3, 4}
Name: k, dtype: object
Run Code Online (Sandbox Code Playgroud)

有 df.apply() 吗?实际的 df 是数百万行。

python intersection set pandas

5
推荐指数
1
解决办法
2235
查看次数

将一个网格拖到另一个网格上并将其限制在侧面 Three.js 内

我必须创建一个类似房屋的结构,用户可以在其中在墙上添加窗户。我正在考虑的方法是首先为窗口创建一个单独的网格,用户可以将其拖过房屋网格的选定墙壁,然后放置在他们认为合适的地方,但在房屋网格的同一墙壁或同一侧内。之后,我将再次创建整个场景,但在房屋网格的墙上绘制窗户,而不是创建单独的窗户网格。

以下是在墙上看到窗户网格时的样子 - 靠墙的窗户

我可以使用 DragControls 将窗口拖过墙壁。

dragControls = new THREE.DragControls( objects, camera, renderer.domElement );
Run Code Online (Sandbox Code Playgroud)

但不知道如何限制拖动,使窗口不能走出墙外。

它在那里我已经创建了建筑网格和窗口网格可以拖动的工作示例-小提琴

3d drag-and-drop intersection three.js

5
推荐指数
1
解决办法
1700
查看次数

计算与 R 的切线交点

我正在尝试在该点处为我的绘图添加切线,x = 30并且我想计算 处切线的 x 交点y = 0.08

我已经找到了一个非常有用的例子,我尝试使用它,但由于某种原因它不适用于y = 0.08. 我不明白predict()函数中 deriv 的含义,也不明白pred0 和 pred1 之间的实际区别。有人可以解释一下吗?

x <- seq(0,40)
y <- dnorm(seq(0,40), mean=25, sd=5)
plot(x, y)
spl <- smooth.spline(y ~ x)
lines(spl, col="green")

newx <- 30
pred0 <- predict(spl, x=newx, deriv=0)
pred1 <- predict(spl, x=newx, deriv=1)

yint <- pred0$y - (pred1$y*newx)
xint <- -yint/pred1$y
xint



plot(x, y)
abline(h=0, col="red")
lines(spl, col="red") 
points(pred0,col="red", pch=19) 
lines(x, yint + pred1$y*x) 
points(xint, 0, col="red", pch=19) 
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

plot intersection r spline

5
推荐指数
1
解决办法
1500
查看次数