计算立方体的横截面

Yuc*_*ong 8 sorting algorithm

如下图所示,立方体的横截面可以是:

  1. 三角形
  2. 长方形
  3. 五角大楼(不是DREW)
  4. 六边形

假设我们得到一个六边形.我们可以得到十字平面与立方体两侧的交点,并获得六边形ABCDEF.现在的问题是:我们如何交点排序,以便六边形ABCDEF可以分成4个三角形ABC,ACD,ADEAEF.

在此输入图像描述


请注意,积分的顺序非常重要,因为如果订单错误,我将无法将其绘制出来.我想将它们分成三角形,因为我想在OpenGL中将它们可视化.


非常感谢@ HugoRune的回答.这里有一些我希望与你们分享的结果.左图是3D体积的横截面(从任意角度).右图是3D体积的最大强度投影的结果. 盒子的横截面(真实数据)

Hug*_*une 7

交点是凸多边形,因此任何适用于凸多边形的排序也适用于此.

特别是:

  • 计算质心Z =(A + B + C + ...)/ numPoints
  • 计算正常n = AB交叉BC
  • 从质心到第一点得到Vector:ZA
  • 用正常的n (带符号角==角度(ZA,ZP)*符号(n点(ZA交叉ZP))将所有点P按有符号角度 ZA到ZP 排序