订购共面点以绘制它们

Order coplanar points for drawing them

我有一个算法可以生成一个平面和包含该平面的立方体的边之间的三到六个交点。要绘制平面(绘制多边形),OpenGL 需要对顶点进行排序,如下图所示:

如果顶点是无序的,可能会得出这样的结果:

编辑:我找到了这个 question,但我不知道如何在 Python 中对其进行编码,这并不是我所需要的

如果将点构建为平面和立方体边缘之间的交点,则它们形成凸多边形。

要正确排序此多边形的顶点,请投影到某个平面上 - 或投影到截面平面上,或投影到 OXY、OXZ、OYZ 平面之一上 - 只需选择一个不垂直于截面的平面并将相应的分量设为零。

然后选择该平面最左边的点作为基点,其他点按相对于基点的极角排序。