【发布时间】:2009-10-24 04:41:35
【问题描述】:
找到两条线之间的交点最有效的算法是什么?
给你四个点 A、B、C、D。 求 AB 和 CD 的交点。 尽可能优化算法。
有两种方法,一种是使用点积,另一种是使用斜率截距形式。哪个更好。
这听起来可能是一个重复的问题,但我想问的是哪种方法更好、最有效、复杂性更高。
【问题讨论】:
标签: algorithm
找到两条线之间的交点最有效的算法是什么?
给你四个点 A、B、C、D。 求 AB 和 CD 的交点。 尽可能优化算法。
有两种方法,一种是使用点积,另一种是使用斜率截距形式。哪个更好。
这听起来可能是一个重复的问题,但我想问的是哪种方法更好、最有效、复杂性更高。
【问题讨论】:
标签: algorithm
这不需要任何算法,只需要solution of two intersecting lines。这是一个基本的数学问题,而不是计算问题(它只是代数运算)。
也就是说,这里的 a discussion 应该会对您有所帮助。
【讨论】:
y = mx + b) 的线开始,但在实际应用中,我发现您更有可能从点开始。
对于这类问题,我更喜欢 Bourke 先生的网站。这是他关于 line intersectoin 的文章:
Intersection point of two lines
鉴于这是多么微不足道,优化起来相当困难。
我想你能做的最好的事情就是确保一切都在 CPU 缓存中,这样你就可以全速运行这些数学运算。您可能很想预先计算一些差异(P2 - P1),但在这个世界上很难说内存查找是否会比仅执行减法本身更快。 CPU 可以在 1 个操作中进行减法和乘法运算,而内存查找如果错过缓存,则可能需要几个数量级的时间。
【讨论】:
【讨论】: