Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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
Sorting 如何按顺时针顺序对共享同一顶点的一系列直线进行排序_Sorting_Computational Geometry_Triangulation - Fatal编程技术网

Sorting 如何按顺时针顺序对共享同一顶点的一系列直线进行排序

Sorting 如何按顺时针顺序对共享同一顶点的一系列直线进行排序,sorting,computational-geometry,triangulation,Sorting,Computational Geometry,Triangulation,我试图将三角剖分存储在一个双连通边列表结构中,但我只停留在一个步骤上 我的问题:如何按顺时针顺序对共享相同尾部的半边列表进行排序 对于那些不熟悉此数据结构的人:如何对共享一个顶点的直线列表按顺时针顺序排序 谢谢大家! 假设你指的是相对于顶点的顺时针方向,你只想按切线对它们进行排序。假设您有某种方式来引用行中的点,这在Python中看起来像这样,因为您没有指定特定的语言: vertices = [[(1,2),(3,4)]...] # Some vertices assuming (1,2) is

我试图将三角剖分存储在一个双连通边列表结构中,但我只停留在一个步骤上

我的问题:如何按顺时针顺序对共享相同尾部的半边列表进行排序

对于那些不熟悉此数据结构的人:如何对共享一个顶点的直线列表按顺时针顺序排序


谢谢大家!

假设你指的是相对于顶点的顺时针方向,你只想按切线对它们进行排序。假设您有某种方式来引用行中的点,这在Python中看起来像这样,因为您没有指定特定的语言:

vertices = [[(1,2),(3,4)]...] # Some vertices assuming (1,2) is common vertex
sorting = lambda vector: math.atan(vector[1][1] / vector[1][0])
sorted_list = sorted(vertices, key=sorting)

<如果你想切换到逆时针,还有一个反向参数。

你能用C++重写这个吗?我对第2行有点困惑(因为我不懂Python)。谢谢大家!@用户2605344第二行只是一条弧切线。对不起,我不明白你的意思。反正切线能帮我做什么?假设我有v1、v2和v3,其中v1是公共顶点,我应该做atan(y3/y2)还是atan(x3/x2)或者什么?我看不出这在数学上有什么关系。谢谢。没关系,我用行列式找到了另一种方法。我现在也明白你的方法了。非常感谢。