Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 在3D中逆时针对顶点周围的边进行排序的算法_Algorithm_Computational Geometry - Fatal编程技术网

Algorithm 在3D中逆时针对顶点周围的边进行排序的算法

Algorithm 在3D中逆时针对顶点周围的边进行排序的算法,algorithm,computational-geometry,Algorithm,Computational Geometry,如何相对于顶点逆时针排列顶点周围的线段(网格中的边) 如上传的图像所示,点不一定是平面的。基本上,考虑在一个复杂的网格物体的外表面上移动,在任何顶点,我想命令连接边(顶点)按逆时针顺序排列,而不考虑表面局部条件、凸性或凹性。 该算法需要短而快,因此可以实现并用于大型网格 我对任何软件包、库或软件都不感兴趣。我将自己实施它。我只对一个有效的算法感兴趣 编辑: 为了让问题更清楚,我补充说,对于每个顶点,我已经有了一个连接边(以及其他顶点)的列表。其目的是对周围顶点列表进行排序,以便按顺序连接这些顶点

如何相对于顶点逆时针排列顶点周围的线段(网格中的边)

如上传的图像所示,点不一定是平面的。基本上,考虑在一个复杂的网格物体的外表面上移动,在任何顶点,我想命令连接边(顶点)按逆时针顺序排列,而不考虑表面局部条件、凸性或凹性。 该算法需要短而快,因此可以实现并用于大型网格

我对任何软件包、库或软件都不感兴趣。我将自己实施它。我只对一个有效的算法感兴趣

编辑: 为了让问题更清楚,我补充说,对于每个顶点,我已经有了一个连接边(以及其他顶点)的列表。其目的是对周围顶点列表进行排序,以便按顺序连接这些顶点将创建一个不自交且逆时针“整体”的多边形(环)


在一般情况下,您不能。(想想四面体的中心和顶点的四条边。)

对于网格曲面,我们可以假设您知道每个顶点的法线。然后可以将边投影到切线平面上(使用局部框架),并在二维中解决排序问题


如果不知道法线,可以使用平面拟合,但由于存在方向模糊,必须强制法线方向一致性。

是否要给定顶点的一个环?你有什么样的数据结构?(看图片)这是否意味着你只对
(x,z)
维度感兴趣,而不是
y
?@NicoSchertler对于每个顶点,我已经有一个连接边的列表。@。例如,考虑一个有机的身体。由中心顶点和连接顶点构成的物体的形状可以是任何形式,如窄楔或加宽多面体等。仅边缘不会对你有太大帮助。你也有每个顶点的三角形吗?我不明白为什么“不能”。您有一个中心顶点以及所有连接到该顶点的边。你从其中任何一个开始,然后转到另一个,直到你到达你的起点,一个戒指。从身体上来说,这对我来说是有意义的。但我不清楚一种算法可以有效地完成这项工作。