如何找到两个(或更多)3D 平面多边形之间的交点(对于最简单的情况,它们都是凸的)? 如果有交叉线,求算法能提供。 请注意,针对无限 Plane-Plane 情况提出的方法没有用。
最佳答案
有2种情况:
两个多边形位于同一平面上。
找到第一个多边形的所有内部点。
任意取第一个多边形,循环遍历第二个多边形的所有顶点,并确定它们是在第一个多边形的内部还是外部。对于凸多边形,这样做很容易:参见 here .
找到 2 个多边形之间的交点
要找到交点,请取一个多边形的每条边并循环遍历另一个多边形的所有边,以查找它们是否在任何地方相交。这可以通过使用 intersection of 2 lines 的公式找到.
相交区域是由内部点和相交点的顶点组成的多边形。
2 个多边形位于不同的平面上。
找到第二个多边形与第一个多边形平面的交点。您可以通过考虑第二个多边形的每条边,并找到第一个多边形的边和平面之间的交点来做到这一点。这可以使用 line and a plane 之间的交集公式找到。 .
检查您找到的交点是在第一个多边形的内部还是外部。
关于algorithm - 3D 平面多边形之间的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6195413/