Math 在三维空间中按三角顺序排序点

Math 在三维空间中按三角顺序排序点,math,Math,我在三维空间中有三个点A,B,C。这些点不是共线的。我希望以这样的方式对点进行排序,如果我遍历它们,我将以三角逆时针顺序遍历三角形ABC。由于您只有6种可能的排序,我将采用蛮力方法:对于每个排序,检查它是否满足您的约束,如果满足,选择它。你必须定义你所看到的三角形的哪一边。从三角形的另一侧看,逆时针CCW的顺序将是顺时针CW 您可以选择任意阶ABC,然后计算叉积A-CxB-C,这将为您提供一个垂直于三角形平面的向量。它指向上或下的方向取决于您选择的顺序。如果是错误的顺序,您可以颠倒顺序或交换两点

我在三维空间中有三个点A,B,C。这些点不是共线的。我希望以这样的方式对点进行排序,如果我遍历它们,我将以三角逆时针顺序遍历三角形ABC。

由于您只有6种可能的排序,我将采用蛮力方法:对于每个排序,检查它是否满足您的约束,如果满足,选择它。

你必须定义你所看到的三角形的哪一边。从三角形的另一侧看,逆时针CCW的顺序将是顺时针CW

您可以选择任意阶ABC,然后计算叉积A-CxB-C,这将为您提供一个垂直于三角形平面的向量。它指向上或下的方向取决于您选择的顺序。如果是错误的顺序,您可以颠倒顺序或交换两点


在谈论方向之前,关键是要弄清楚你要从哪一边看方向。

这没有意义。@Alexandre C.确切的原因是什么?有几种解决方案,但我不明白为什么它没有意义。@static\u rtti:你需要4个点来理解这个句子来定义一个方向。这就好像你要求在平面上按三角顺序遍历两个点一样。@Alexandre:我明白了。我认为平面上的三角形确实有方向,但在空间中,你必须选择从哪个角度看它:3点:有2个循环。每一个都是顺时针的,具体取决于投影。所以,你想做什么就做什么。问题是我不知道如何检查我的约束。那是因为你的约束没有很好的定义;见Alexandre的评论。