找到两个2D线段的交点很容易; the formula is straight forward。但是,恐怕找不到两个3D线段的交点。
找到两个3D线段的交点的算法最好是在C#中?
我发现了C++ implementation here。但是我不信任该解决方案,因为它偏向某个平面(请看实现部分下实现perp
的方式,它假设对z plane
偏爱。任何通用算法都不得假定任何平面方向或偏向)。
有更好的解决方案吗?
最佳答案
大多数3D线不相交。一种可靠的方法是找到两条3D线之间的最短线。如果最短线的长度为零(或距离小于您指定的公差),则您知道两条原始线相交。
查找the shortest line between two 3D lines, written by Paul Bourke的方法总结/解释如下:
方法一:
方法二:
发现此方法on Paul Bourke's website是极好的几何资源。该网站已重新组织,因此向下滚动以查找主题。
关于c# - 查找两个3D线段相交点的算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2316490/