Math 如何确定三维顶点的顺序

Math 如何确定三维顶点的顺序,math,Math,如果在三维坐标空间中有5个顶点,如何确定这些顶点的顺序。i、 e顺时针或逆时针方向 如果我再详细说明一下 我有一个由一组多边形组成的3D模型。每个多边形都是顶点的集合,我想计算多边形曲面的范数。为了计算范数,我必须考虑逆时针顺序的顶点。我的问题是给定一组顶点,如何确定它是顺时针排列还是逆时针排列 这是用于导航网格生成的,我想删除代理无法行走的多边形。为此,我的方法是计算曲面范数(多边形的垂直向量)并基于与二维平面的角度删除多边形。为了计算范数,我应该知道排列顺序点的顺序。对于多边形中给定的点集

如果在三维坐标空间中有5个顶点,如何确定这些顶点的顺序。i、 e顺时针或逆时针方向

如果我再详细说明一下

我有一个由一组多边形组成的3D模型。每个多边形都是顶点的集合,我想计算多边形曲面的范数。为了计算范数,我必须考虑逆时针顺序的顶点。我的问题是给定一组顶点,如何确定它是顺时针排列还是逆时针排列


这是用于导航网格生成的,我想删除代理无法行走的多边形。为此,我的方法是计算曲面范数(多边形的垂直向量)并基于与二维平面的角度删除多边形。为了计算范数,我应该知道排列顺序点的顺序。对于多边形中给定的点集,如何确定点的排列顺序


polygon1由顶点1=[-21.847065-2.492895 19.569759]、顶点2[-22.279873 1.588395 16.017160]、顶点3[-17.234818 7.132950 7.453146]这三点组成,我如何确定它们的顺序?你的问题定义太差,无法给出完整的答案,但这里是一个问题的框架

缺少的部分(肉,如果你愿意的话)是一个函数,它接受任意两个坐标,并告诉你哪一个比另一个“大”。没有一个坚实的定义,你将无法使任何工作

剩下的,骨架,很简单。使用比较函数对向量列表进行排序。对于五个向量,您只需要一个简单的排序算法,尽管如果顶点数量显著增加,您可能需要研究一种更快的排序算法(即)

如果您选择的语言/库为您提供了排序,那么您已经有了您的框架

编辑 在重新阅读您的问题后,我还想到,由于这n个顶点定义了一个多边形,您可能可以假设它们都位于同一平面上(如果不是,那么祝您好运)


因此,如果你能将向量坐标映射到该平面上的二维位置,你可以将问题简化为在二维空间中顺时针或逆时针排序。

你的问题定义得太差,无法给出完整的答案,但这里是一个问题的框架

缺少的部分(肉,如果你愿意的话)是一个函数,它接受任意两个坐标,并告诉你哪一个比另一个“大”。没有一个坚实的定义,你将无法使任何工作

剩下的,骨架,很简单。使用比较函数对向量列表进行排序。对于五个向量,您只需要一个简单的排序算法,尽管如果顶点数量显著增加,您可能需要研究一种更快的排序算法(即)

如果您选择的语言/库为您提供了排序,那么您已经有了您的框架

编辑 在重新阅读您的问题后,我还想到,由于这n个顶点定义了一个多边形,您可能可以假设它们都位于同一平面上(如果不是,那么祝您好运)


因此,如果你能将向量坐标映射到平面上的二维位置,你就可以把问题简化为在二维空间中顺时针或逆时针排列。这是考试吗?如果是这样,则需要一个点来确定相对于的缠绕方向。从多边形的一侧看,顶点将显示为顺时针旋转。从另一边看,它们似乎是逆时针旋转的

但是假设你的多边形是凸的并且是平面的。取任意三个连续顶点A、B和C。然后可以使用以下公式找到向量:

从给定视点V到其中一个顶点,使用向量对法线进行旋转,将得到一个值,该值的符号指示从V查看时顶点的旋转方向:

w = N . (A - V)

顺时针方向是正数,逆时针方向是负数,还是相反,这取决于你坐标系的利手。

正如其他人所指出的,你的问题并不完全清楚。这是考试吗?如果是这样,则需要一个点来确定相对于的缠绕方向。从多边形的一侧看,顶点将显示为顺时针旋转。从另一边看,它们似乎是逆时针旋转的

但是假设你的多边形是凸的并且是平面的。取任意三个连续顶点A、B和C。然后可以使用以下公式找到向量:

从给定视点V到其中一个顶点,使用向量对法线进行旋转,将得到一个值,该值的符号指示从V查看时顶点的旋转方向:

w = N . (A - V)

顺时针方向是正数,逆时针方向是负数,还是相反,这取决于坐标系的惯用手。

我认为你的困惑来自这样一个事实,计算叉积的方法有时是按照顺时针方向教授的,检查3个点的顺时针方向a,B,C确定以下各项的标志:
(B-A)X(C-A)
然而,更好的定义实际上决定了这一点。
一般来说,三维中的5个任意点不能说是顺时针排列的,但3个点可以,因为3个点总是位于一个平面上。

我认为你的困惑来自这样一个事实,即计算叉积的方法有时是按照顺时针排列的,并检查3个点a、B、C的顺时针排列,C确定以下各项的标志:
(B-A)X(C-A)
然而,更好的定义实际上决定了这一点。 一般来说,3维空间中的5个任意点不能说是顺时针排列的,但3个点可以