问题标签 [intersection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
964 浏览

optimization - R 优化:在这种情况下如何避免 for 循环?

我正在尝试在 R 中做一个简单的基因组跟踪交叉,并遇到了主要的性能问题,可能与我使用 for 循环有关。

在这种情况下,我以 100bp 的间隔预定义了窗口,我试图计算每个窗口中有多少被 mylist 中的注释覆盖。从图形上看,它看起来像这样:

所以我写了一些代码来做到这一点,但它相当慢并且已经成为我代码中的瓶颈:

自然,这用于比我在此处提供的示例大得多的数据集。通过一些分析,我可以看到瓶颈在 for 循环中,但是我笨拙地尝试使用 *apply 函数对其进行矢量化导致代码运行速度要慢一个数量级。

我想我可以用 C 写一些东西,但如果可能的话,我想避免这种情况。任何人都可以提出另一种可以加快计算速度的方法吗?

0 投票
2 回答
8747 浏览

python - python中3D多边形的交点

是否有任何开源工具或库(最好在 python 中)可用于执行与从 ESRI shapefile 读取的 3D 几何图形的大量交叉?大多数测试将是简单的线段与多边形。

我研究了 OGR 1.7.1 / GEOS 3.2.0,虽然它正确加载了数据,但生成的交叉点不正确,并且大多数其他可用工具似乎都建立在这项工作之上。

虽然 CGAL 可能是一个替代方案,但它的许可证并不合适。Boost 通用几何库看起来很棒,但是 api 很大,而且似乎不支持开箱即用的 wkt 或 wkb 阅读器。

0 投票
5 回答
12289 浏览

algorithm - 射线箱相交理论

我希望确定光线和盒子之间的交点。盒子由它的最小 3D 坐标和最大 3D 坐标定义,射线由它的原点和它指向的方向定义。

目前,我正在为盒子的每个面形成一个平面,并将射线与平面相交。如果光线与平面相交,那么我检查相交点是否实际上在盒子的表面上。如果是这样,我检查它是否是这条射线最近的交点并返回最近的交点。

我检查平面交点是否在盒子表面本身的方法是通过一个函数

其中corner1是该框面的矩形的一个角,corner2是对角。我的实现大部分时间都有效,但有时它给了我错误的交集。请看图片:

替代文字

该图像显示了来自相机眼睛并撞击盒子表面的光线。其他光线是盒子表面的法线。可以看出,特别是一条光线(实际上是看到的法线)从盒子的“背面”出来,而法线应该从盒子的顶部出来。这似乎很奇怪,因为有多个其他光线正确地击中了盒子的顶部。

我想知道我检查交点是否在盒子上的方式是否正确,或者我是否应该使用其他算法。

谢谢。

0 投票
3 回答
204 浏览

django - Django 查询问题

如果我在 Django 中有两个不同的 QuerySet,它们都表示具有相同模型的 ManyToMany 关系,我将如何找到交叉点?

0 投票
2 回答
945 浏览

php - 数组和对象之间的PHP交集

我有一个对象,假设它是这样的:

我想将该对象的属性的任意切片作为数组获取。

0 投票
2 回答
6028 浏览

3d - 寻找两个球体的交点

考虑以下问题 - 我有 2 个长度为 L0 和 L1 的链接。P0 是第一个链接开始的点,P1 是我希望第二个链接结束在 3-D 空间中的点。我应该编写一个函数,该函数应将这些 3-D 点(P0 和 P1)作为输入,并应找到将第二个链接的端点置于 P1 的链接的所有配置。

我对如何去做的理解是 - 每个链接 L0 和 L1 将在其自身周围创建一个球体 S0 和 S1。我应该找出这两个球体的交点(这将是一个圆)并打印出该圆圆周上的所有点。

我看到了 gmatt 关于寻找 3 个球体之间的交点的第一个回复,但由于图像没有显示,因此无法正确理解。我还在http://mathworld.wolfram.com/Sphere-SphereIntersection.html看到了一个找出交叉点的公式

我可以通过mathworld上给出的方法找到相交的半径。我也可以找到那个圆的中心,然后使用圆的参数方程来找到这些点。我唯一的疑问是这种方法是否适用于上述 P0 和 P1 点?

请发表评论,让我知道你的想法。

0 投票
2 回答
2212 浏览

visual-studio-2010 - Texture2D.Bounds.Intersect,但边界从不移动?- XNA,.Net 4.0

我对 XNA 还是很陌生,所以请原谅这篇文章中的任何愚蠢的问题和陈述(附加的问题是我正在使用带有 .Net 4.0 的 Visual Studio 2010,这也意味着网络上的示例很少 - 嗯,没有我很容易找到):

我在一个“游戏”中有两个 2D 对象,我用它们来了解有关 XNA 的更多信息。我需要弄清楚这两个对象何时相交。

我注意到 Texture2D 对象有一个名为“Bounds”的属性,该属性又具有一个名为“Intersects”的方法,该方法将 Rectangle(另一个 Texture2D.Bounds)作为参数。

但是,当您运行代码时,即使对象位于屏幕的不同侧,它们也总是相交。当我进入代码时,我注意到对于 Texture2D 边界,当您将鼠标悬停在边界和 X 上时,我会返回 4 个参数,并且 Y 坐标对于两个对象总是读取“X = 0,Y = 0”(因此它们总是相交)。

让我感到困惑的是,Bounds 属性位于纹理上,而不是位于对象的位置(或 Vector2)上。我最终创建了一个小辅助方法,它接收对象和位置,然后计算它们是否相交,但我确信一定有更好的方法。

任何建议,指针将不胜感激。

吉尼尔

0 投票
3 回答
2533 浏览

mysql - Mysql交集中的单列多过滤器

这是一张桌子

现在我想运行一个过滤器,比如 Select * From Cars WHERE (Attribute = Color AND Value = Red) AND (Attribute = Make AND Value = Honda).... 并希望将 CarID 设为 3 !

这是 2 个查询相交的简单案例,但我不知道如何在单个查询中完成。

任何帮助appriciated。

0 投票
4 回答
3935 浏览

algorithm - 寻找高交集的最快算法

我有大量的用户 ID(整数),可能数百万。这些用户都属于不同的组(整数组),因此有大约 1000 万个组。

为了简化我的示例并了解其本质,我们假设所有组都包含 20 个用户 ID。

我想找到所有具有 15 或更大交集的整数集对。

我应该比较每对套装吗?(如果我保留一个将用户 ID 映射到设置成员资格的数据结构,则没有必要这样做。)最快的方法是什么?也就是说,我的底层数据结构应该是什么来表示整数集?已排序的集合,未排序的——散列能以某种方式帮助吗?我应该使用什么算法来计算集合交集)?我更喜欢与 C/C++(尤其是 STL)相关的答案,但也欢迎任何更一般的算法见解。

更新 另外,请注意,我将在共享内存环境中并行运行它,因此首选干净地扩展到并行解决方案的想法。

另外,请注意,绝大多数集合对的交集大小为 0——这意味着使用将用户 ID 映射到集合以避免计算每对集合的交集可能是有利的。

0 投票
4 回答
18827 浏览

sql - 在 SQL 中,Join 实际上是一个 Intersection?而且也是联动还是“侧向联盟”?

我一直认为 SQL 中的 Join 是两个表之间的某种链接。

例如,

在这种情况下,它链接两个表,以显示每个员工的部门名称而不是部门 ID。有点像“联动”或“联合”。

但是,在了解了inner join vs outer join之后,发现Join(Inner join)其实是一个交集。

例如,当一张表的 ID 为 1、2、7、8,而另一张表的 ID 为 7 和 8 时,我们得到交集的方式是:

得到“7和8”两条记录。所以它实际上是一个交叉点。

所以我们有两个表的“交集”。将此与 2 个表上的“联合”操作进行比较。可以将 Join 视为“交叉点”吗?但是它的“链接”或“横向联合”方面呢?