我的目标是在给定多边形的无序顶点以及平面方程的情况下找到具有 n 个顶点的 3d 平面多边形的无符号区域。一旦点按顺时针或逆时针顺序排序,我已经有一个有效的算法来计算面积(来自这个网站:http ://softsurfer.com/Archive/algorithm_0101/algorithm_0101.htm#3D%20Polygons )
我决定实施格雷厄姆的扫描来重新排序点,2d 案例有很多例子,但 3d 案例不多。我认为我最好的选择是使用转换矩阵将 3d 点转换为 2d(我不确定如何执行此操作)或使用叉积在 3d 中确定 3 个点是否形成逆时针转动。我认为后者会更有效,因为我可以对每个叉积找到的区域求和,并在我重新排序点时计算最终答案。
但是我仍然不确定如何在 3d 中实现 Graham 的扫描。另外,我可以利用我已经知道顶点集是共面的并且它们都必须包含在凸包中对我有利的事实吗?
编辑:进一步考虑,我什至需要在这里使用格雷厄姆的扫描吗?我已经知道所有的点都包含在船体中,所以按角度对它们进行排序不够吗?最终目标是使点按逆时针/顺时针顺序排列,以便计算面积,我认为扫描对于完成这一点是必要的。