问题标签 [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 投票
1 回答
169 浏览

precision - 平面上两个三角形的交点

两个三角形的交点要么是空的,要么是 n 边形(n 最多为 6)。

理论上,很容易想出一个算法来计算交叉区域。可以计算所有线段的可能交点,并将它们与三角形角点的点结合起来。

在实践中,存在一些数字问题。如果线段(几乎)平行,它们可能有也可能没有交点,并且其计算可能不精确(通常除以矩阵的行列式,然后近似为零)。

有什么建议可以避免这些数值不稳定性吗?

0 投票
0 回答
91 浏览

line-intersection - 用于查找两条线之间的交点的代码背后的逻辑

这是(fluent-CFD 软件)中用户定义函数的代码的一部分,用于使网格变形。

评论说它找到了两条线之间的交点。

我的问题是:

1.t1和t2的值是否代表交点的X和Y坐标?

2.它是如何找到交点的?(帮我做数学,我无法识别为(*t1 和 *t2)编写的公式)。如果您可以对公式进行一些几何解释,那就太好了。

0 投票
2 回答
942 浏览

python - 试图找出一条线是否与另一条线相交,但即使线确实相交它也会失败

在我的程序开始时,我绘制了六个垂直的直线段,然后我随机绘制了用户想要的任意多的线段。每次绘制它时,我都会检查它是否与这六个段之一相交。问题是,即使它们相交,它也永远不会返回 True。

我正在使用 Python,并对两条线使用 y = mx + b 来找到它们相交的公共点,并检查它是否位于两条线段上。这是代码:

0 投票
1 回答
848 浏览

java - 直线与垂直线相交的精度

我正在使用以下函数计算两条线的交点:

然而,随着 d1 或 d2 变大(对于垂直线),结果变得越来越不准确。我怎样才能防止这种情况发生?

就我而言,我有两条相互垂直的线。如果线条旋转 45 度,我会得到准确的结果。如果线在 0 度或 90 度,我会得到不准确的结果(交叉点的一个轴是正确的,另一个轴在整个地方。

编辑

使用叉积:

0 投票
1 回答
977 浏览

c++ - 使用 Boost Geometry 的线相交

如何使用 Boost Geometry 表示线?

我不需要有限段,但我需要无限线(也许可以扩展或线串?)

据我了解,我可以使用boost::geometry::intersects,但我不知道如何定义无限线。

0 投票
1 回答
1916 浏览

3d - 相交的 3D 线

如何确定两条 3D 线段是否与每条线的起点和终点的给定 XYZ 坐标相交?如果它们确实相交,那么 XYZ 是什么?

我只能找到二维线的答案:如何检测两条线段相交的位置?

0 投票
1 回答
96 浏览

python - 线段上的中心投影

我有以下问题。给定的是二维空间中的两个数据集。这两个数据集是来自示例中由 (0,0) 给出的中心点的 2D 测量点。我需要使用点之间的线性插值将第一个数据集 (x1, y1) 的点集中投影到由第二个数据集定义的线段上。

示例配置文件

我已经为连接 set1 与源点的所有线和 set2 的线段实现了经典的线交点计算。不幸的是,嵌套的 for 循环效率不高。

有没有办法让这个算法运行得更快?也许是矢量化实现?

有任何想法吗?先感谢您。


好的。让我重新定义问题。

我有以下代码:

在此处输入图像描述

代码中心将 set1 中的点投影到由 set2 中的点使用线性插值定义的曲线上。

0 投票
1 回答
60 浏览

c++ - inf 输出计算线斜率

我对 C++ 很陌生。

我在下面写了这段代码,它应该告诉我 2 条线是否有一个交点,所以我认为 y=Mx+B 方程中具有相等“M”的两条线不应该相交,而其他所有线都会相交。

程序似乎理解这一点,但除非输入线段的斜率为 0,否则它会输出 inf 或 -inf。

为什么会这样?

0 投票
1 回答
120 浏览

c++ - 计算两条线的交点在 CSV 文件中返回 -1.#IND

在我的软件中,我尝试计算两条线的交点。我从第一行的四个双变量(x 的两个/y 的两个)开始,第二行的四个双变量开始。数学对我来说很清楚,而且在纸面上它是有效的。为了进一步处理,我必须将交叉点保存在 CSV 文件中。但是当我打开文件时,我所拥有的只是-1.#IND,据我所知,这意味着negative infiniteNot A Number。所以这是我的代码:

所以首先我从两个向量中得到四个点的坐标。

有了坐标,我就可以为两条线建立方程。在下一步中,我将查看变量m1m2. 如果m1减号m2为 0,则没有交点。

最后,我只使用for-loop 将矢量相交保存在 CSV 文件中。

但是当我打开文件时,我刚刚提到了错误。我已经尝试过另一种数据类型,例如 float,但没有任何改变。我知道代码的第一部分和最后一部分是有效的,因为我已经将它与不同类型的数学一起使用,但是我的数学方法被错误地选择了,所以我不得不改变它。所以我认为问题必须在if-statement 的条件下。

编辑:在评论的帮助下,我现在修改了我的代码。所以这是我的新代码:

当我运行程序时,文件中没有任何交集。获得文件交叉点的唯一方法是修改IsPointInBoundingBox函数。为了让它工作,我必须使用这个代码:

我的大问题是现在我必须使用不同的输入。通过添加+-0.1到我的代码中,我将不得不计算边界是否太小,或者可能更小。但我不明白,为什么我失去了所有的交叉点,我原来的功能。我已经手动计算了交叉点,并且总是在设定的边界中找到一个点。

0 投票
2 回答
1357 浏览

python - 需要在多条线段上迭代找到两条线段的交点

好的,这就是问题所在。我试图通过比较从一系列 csv 文件中读取的多个线段来计算两条线的交点。我已经将每个线段的 x,y 坐标对放入元组内的元组列表中,如下所示:

线路问题

我试图弄清楚如何沿着连续线和交叉线进行迭代,以找出每条交叉线沿连续线相交的位置。

基本上我想要(下面列出的伪代码):

我讨厌在这方面寻求帮助,因为我对编码太陌生,无法帮助其他人,但希望有人能和我一起解决这个问题。

我确实有一种方法,我认为一旦我找出迭代器就可以计算交集: