问题标签 [line-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 投票
27 回答
521557 浏览

geometry - 你如何检测两条线段相交的位置?

如何确定两条线是否相交,如果相交,在什么 x,y 点?

0 投票
1 回答
3005 浏览

3d - 3d 空间中的线到线交点

如何在 3d 空间中找到线到线的交点?谁能给我方程式?

0 投票
1 回答
1799 浏览

c# - C#:2D 子平铺线相交

我在为我的游戏运行算法时遇到了一些问题,希望这里有人可以帮助我。谷歌似乎不是一个很好的帮助,因为大多数解决方案只适用于完整的瓷砖。

在游戏中,单位可以在一个棋子内占据不同的位置,即它们可以在左上角,中心,右下角,... 棋子的位置(2/3),即(2.2/3.1),(2.5/3.5) ), (2.8/3.9)。

如果他们从位置 (2.2/3.1) 移动到 (5.7/4.1),我需要检查路径中是否有障碍物。

我目前的算法是:

  1. 从(2.2/3.1)开始
  2. 计算运动的角度(即70度)
  3. 朝那个方向移动 0.1 步
  4. 检查我在哪个瓷砖上(地板(pX)/地板(pY))
  5. 从 2 开始重复

该算法有效,但对我来说它看起来不是很有效,因为障碍物只能是完整的瓷砖,而不是瓷砖的一部分(单位不会碰撞)。如果我增加步长,我开始错过仅略微交叉的瓷砖(即您只穿过左下角)。即使步长为 0.1,仍然有可能错过障碍。

我试图找到一个解决方案来获取子地图(所有带有角落的瓷砖(地板(start.X)/地板(start.Y))和(ceil(start.X)/ceil(start.Y)),移动穿过每块瓷砖并在数学上检查它是否越过。遗憾的是,我似乎缺乏这项检查所需的数学知识。

我的最后一个想法是将图块的所有 4 个边界作为一条线并进行线相交,但这似乎比我原来的方法慢。

有什么提示吗?

谢谢。

0 投票
1 回答
915 浏览

line - 帕斯卡中的线交叉代码

我正在尝试编写线交叉代码来检测两条线是否相交。我有东西的形式是有 O 对象可以有 Lo(l 下标 O) 线,每条线有 2 个点,每个点有 ax 和 a y。这是记录格式。

我调用 Code 来遍历我希望测试碰撞的两个对象的每一行组合。

每条线路测试都是这样完成的

但根据我的代码,所有行总是相交.....因此我犯了一个错误......我是否以愚蠢的方式这样做有什么想法我做错了什么?

0 投票
10 回答
75737 浏览

python - Numpy 和线的交叉点

我将如何使用 numpy 计算两条线段之间的交点?

在我的代码中segment1 = ((x1,y1),(x2,y2))segment2 = ((x1,y1),(x2,y2)). 注意segment1不等于segment2。因此,在我的代码中,我也一直在计算斜率和 y 截距,如果可以避免这种情况会很好,但我不知道如何做。

我一直在将 Cramer 规则与我用 Python 编写的函数一起使用,但我想找到一种更快的方法。

0 投票
1 回答
4428 浏览

algorithm - 找到所有线段的交点

给定一个线段列表,找到交点的最简单方法是遍历线段列表,检查它们是否相交并记录相交点。

但是这种方法的运行时间是O(n^2),效率很低。有没有其他算法可以加快这个过程?

0 投票
4 回答
1711 浏览

algorithm - 两组线段的 Bentley-Ottmann 算法

Bentley-Ottmann 算法用于计算线段的交点。

但是,我不想找到所有线之间的交点,而是要找到两组线之间的交点。也就是说,对于线组中的每条线A,我都想知道这些线与线组中的线之间的交点B

无论如何我可以为此扩展Bentley-Ottmann 算法吗?我已经实现了现有的 Bentley-Ottmann 算法(在 CGAL 库中),我不想修改它。然而,我渴望找到重用和扩展它的方法。

编辑:欢迎任何其他算法(不一定基于 Bentley-Ottmann)。如果这些算法已经在现有库中实现会更好。

0 投票
1 回答
77 浏览

javascript - 确定数字的交叉

假设我有这个数据集......

var a = [5,6,7]; 变量 b = [9,8,6];

想象一下,这些值被绘制在 (x,y) 坐标对中的 y 上,而 x 是数组索引,我怎么知道我的两个数组是否在一个点交叉。

谢谢。

0 投票
2 回答
7149 浏览

math - 基于点的线/平面相交

我在空间中有两个点,L1 和 L2,它们定义了一条线上的两个点。

我在空间中有三个点,P1、P2 和 P3,这 3 个点在一个平面上。

那么给定这些输入,这条线在什么点与平面相交?

外汇。平面方程 A*x+B*y+C*z+D=0 为:

但是其余的呢?

0 投票
1 回答
444 浏览

algorithm - 如何移动线段以消除最小移动的交叉点?

以下问题是否有任何算法或相关工作?

给定一组二维线段,如何移动线段(水平或垂直)以消除交叉点,从而最小化整体移动?可以允许端点处的交叉点。