algorithm - 3D 平面多边形之间的交集

标签 algorithm 3d intersection polygons

如何找到两个(或更多)3D 平面多边形之间的交点(对于最简单的情况,它们都是凸的)? 如果有交叉线,求算法能提供。 请注意,针对无限 Plane-Plane 情况提出的方法没有用。

最佳答案

有2种情况:

两个多边形位于同一平面上。

找到第一个多边形的所有内部点。

任意取第一个多边形,循环遍历第二个多边形的所有顶点,并确定它们是在第一个多边形的内部还是外部。对于凸多边形,这样做很容易:参见 here .

找到 2 个多边形之间的交点

要找到交点,请取一个多边形的每条边并循环遍历另一个多边形的所有边,以查找它们是否在任何地方相交。这可以通过使用 intersection of 2 lines 的公式找到.

相交区域是由内部点和相交点的顶点组成的多边形。

2 个多边形位于不同的平面上。

找到第二个多边形与第一个多边形平面的交点。您可以通过考虑第二个多边形的每条边,并找到第一个多边形的边和平面之间的交点来做到这一点。这可以使用 line and a plane 之间的交集公式找到。 .

检查您找​​到的交点是在第一个多边形的内部还是外部。

关于algorithm - 3D 平面多边形之间的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6195413/

相关文章:

python - 提高python算法的速度

Java:找到可能的交集

php - 有没有办法通过一次比较来检查一个值是等于 0 还是 1?

java - 带最后一个元素枢轴的就地快速排序?

c++ - 一个 C++ 函数,用于计算和采样射弹在 3D 空间中的轨迹。物理编程

javascript - 如何检查玩家是否面向立方体node.js

javascript - 如何在javascript中找到两条切线的交点

java - 我怎样才能知道两个矩形相交的位置?

java - 在网格算法中找到机器人的路径

java - LibGDX 3D 提高性能