标签: intersection

如何交叉两个不同的IEnumerable集合

我认为这个问题之前已经被问到,但我还没有能够推断出一个明确的答案.我试图找到最好的方式(或一种方式)来交叉两个完全不同的可相关集合.

A类:

  • int z1
  • int z2
  • int z3
  • 字符串z4

B级:

  • int j5
  • int j6
  • T j7
  • T j8
  • 字符串j9

..我想相交List<A>List<B>z2 == j6.

可以这样做吗?

c# linq generics collections intersection

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

高效的算法,用于在C中生成排序数组的n路交集

我需要在C中生成一些排序的整数数组之间的交集.我知道如何找到两个排序数组之间的交集,但我需要为两个以上的数组执行此操作,有效且无需事先了解数组的数量.我可以对最大数量施加合理的限制 - 现在就说十.这些阵列可以是从几个项目到几十万个项目的任何地方,并且绝不一定是相同的长度.

用于生成两个排序数组的交集的伪代码:

while i < m and j < n do:
    if array1[i] < array2[j]:
        increment i
    else if array1[i] > array2[j]: 
        increment j
    else 
        add array1[i] to intersection(array1, array2)
        increment i
        increment j
Run Code Online (Sandbox Code Playgroud)

我正在和C一起工作,我的解释清楚而不是代码.

c arrays intersection sorted

6
推荐指数
1
解决办法
3752
查看次数

如果在other_set中的对象,则交集()和'对象中的对象之间的速度差异'

哪一个更快?一个"更好"吗?基本上我会有两套,我想最终从两个列表中得到一个匹配.所以我觉得for循环更像是:

for object in set:
    if object in other_set:
        return object
Run Code Online (Sandbox Code Playgroud)

就像我说的 - 我只需要一场比赛,但我不确定如何intersection()处理,所以我不知道它是否更好.此外,如果它有帮助,这other_set是一个近100,000个组件的列表,set可能是几百,最多几千.

python performance intersection set data-structures

6
推荐指数
2
解决办法
5905
查看次数

Django过滤查询集交集?

class Item(models.Model):
    ...

class ItemSet(models.Model):
    items = models.ManyToManyField(Item, related_name="itemsets")
Run Code Online (Sandbox Code Playgroud)

我有一个ItemSets列表.我想找到所有Item对象,其中Item对象位于至少一个ItemSet对象的"items"M2M字段中.

我怎样才能做到这一点?

PS这是我尝试过的,但无济于事:

itemset_list = [itemset1, itemset2, itemset3]    
items = Item.objects.filter(itemsets__in=itemset_list)
Run Code Online (Sandbox Code Playgroud)

django many-to-many intersection set django-models

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

找到两个椭圆的交点(Python)

我正在用Python编写一个基本的2D形状库(主要用于操作SVG绘图),我对如何有效地计算两个椭圆的交点感到茫然.

每个椭圆由以下变量(所有浮点数)定义:

c: center point (x, y)
hradius: "horizontal" radius
vradius: "vertical" radius
phi: rotation from coordinate system's x-axis to ellipse's horizontal axis
Run Code Online (Sandbox Code Playgroud)

忽略椭圆相同时,可能有0到4个交点(没有交点,切线,部分重叠,部分重叠和内部切线,并且完全重叠).

我发现了一些潜在的解决方案:

关于如何计算交叉点的任何建议?速度(它可能需要计算很多交叉点)和优雅是主要标准.代码会很棒,但即使是一个好的方向也会有所帮助.

python geometry intersection ellipse shapes

6
推荐指数
1
解决办法
7329
查看次数

坐标中两条线之间的交点

我可以检测到两条线的交点,但是如果我的线没有我的屏幕的长度,它会检测到它不应该在的点.

这是预览: 路口 因此,它不应该检测到这个交叉点,因为水平线不是那么长.

码:

- (NSMutableArray *) intersectWithLines:(CGPoint)startPoint andEnd:(CGPoint)endPoint {
    NSMutableArray *intersects = [[NSMutableArray alloc] init];

    for(GameLine *line in [_lineBackground getLines]) {

        double lineStartX = line.startPos.x;
        double lineStartY = line.startPos.y;
        double tempEndX = line.endPos.x;
        double tempEndY = line.endPos.y;

        double d = ((startPoint.x - endPoint.x)*(lineStartY - tempEndY)) - ((startPoint.y - endPoint.y) * (lineStartX - tempEndX));

        if(d != 0) {            
            double sX = ((lineStartX - tempEndX) * (startPoint.x * endPoint.y - startPoint.y * endPoint.x) - (startPoint.x - endPoint.x) * (lineStartX * tempEndY …
Run Code Online (Sandbox Code Playgroud)

iphone math 2d intersection objective-c

6
推荐指数
3
解决办法
6290
查看次数

获得两个QLists之间交集的Qt方法是什么?

我有两个QLists,我需要确定交叉点(在这个特定的情况下,两个QStringLists,但我会认为这将适用于每个容器,只要T实现operator==()).

确定列表之间交集的Qt方法是什么?

编辑:

订单和重复不是问题.我只是在寻找两个列表中存在的项目.

c++ qt intersection qt4 qlist

6
推荐指数
1
解决办法
4781
查看次数

在Java中的3D Ray-Quad交叉测试

在3D空间中,我试图确定光线/线是否与正方形相交,如果是,则它与相交的正方形上的x和y位置相交.

我有两点代表的光线:

R1 = (Rx1, Ry1, Rz1) and 
R2 = (Rx2, Ry2, Rz2)
Run Code Online (Sandbox Code Playgroud)

正方形由四个顶点表示:

S1 = (Sx1, Sy1, Sz1), 
S2 = (Sx2, Sy2, Sz2), 
S3 = (Sx3, Sy3, Sz3) and 
S4 = (Sx4, Sy4, Sz4).
Run Code Online (Sandbox Code Playgroud)

我在网上找到了很多代数方程,但似乎没有一个完全符合这个问题.理想情况下,我想在Java代码中得到答案,但是我可以轻松转换为代码的等式也可以.

所有帮助将不胜感激.

java 3d intersection line plane

6
推荐指数
1
解决办法
6035
查看次数

WorldWind Sphere Line Intersection Bug?

我看到了WorldWind的Sphere -Line 交叉逻辑中看似矛盾的行为.我创建了一个Sphere和Line并且它们相交但是然后交集返回null(扫描代码用于注释://***这是它变得糟糕的地方).

这是视觉上发生的事情(线条是灰色的,但很难看到): 球面相交

public class WWTest extends ApplicationTemplate {

    public static class VisualizationFrame extends ApplicationTemplate.AppFrame {

        public VisualizationFrame() {
            super(new Dimension(1200, 1024));
            final Globe globe = getWwd().getModel().getGlobe();

            //Create a sphere at 0,0 on the surface of the Earth wtih a 60 NMi radius
            final Vec4 sphereCenter = globe.computePointFromLocation(LatLon.ZERO);
            final Sphere sphere = new Sphere(sphereCenter, 111120);
            // Draw the sphere
            final RenderableLayer sphereLayer = new RenderableLayer();
            sphereLayer.addRenderable(sphere);

            final RenderableLayer pathLayer = new RenderableLayer();
            // Create a line at 10k …
Run Code Online (Sandbox Code Playgroud)

java intersection computational-geometry worldwind

6
推荐指数
1
解决办法
306
查看次数

无交叉地连接偶数个节点

我有两组n个节点.现在我想将一组中的每个节点与另一组中的另一个节点连接起来.结果图应该没有交叉点.

我知道几种扫描线算法(Bentley-Ottmann-Algorithm来检查交叉点发生的位置,但除了蛮力方法之外,我找不到解决这些交叉点的​​算法.

一组中的每个节点可以连接到另一组中的任何其他节点.

任何解决这个问题的(一种有效的)算法的指针?无需实施.

编辑1:

以下是该问题的一种解决方案n=7:

交叉问题

黑点是一组节点,红点是一组.每个黑色节点必须连接到一个红色节点,以便连接它们的线不交叉.

EDIT2:

为了进一步说明:所有节点的位置都是固定的,结果图将有n个边.我也没有任何证据证明存在解决方案,但我无法创建一个没有解决方案的例子.我确信在那里有一个证据可以创建这样一个平面图.此外,只需要一种解决方案,而不是所有可能的解决方案.

algorithm intersection graph-theory line-segment planar-graph

6
推荐指数
1
解决办法
568
查看次数