基本上,我有一个从csv文件读取的x,y,z坐标列表,这些文件形成一个粗糙的圆圈,并且不按[[82.41657257, 0.863095999, -5400.0], [82.4160614, 0.0, -5400.0], [82.41255188, -0.863053977, -5400.0], [82.40731812, 1.726186991, -5400.0],......
顺序排列。我有圆圈的中心,但无法计算出如何对点进行排序。有什么办法可以将这些点按逻辑顺序(顺时针)排序?
import csv
coorinput=[]
#open and read file
with open("test.csv","rb") as readfile:
reader = csv.reader(readfile, dialect = 'excel',skipinitialspace = True)
for row in reader:
coorinput.append(map(float, row))
#call sort function here
最佳答案
您可以使用三角函数找到每个点与X轴所成的角度:
from math import atan2
coorinput.sort(key=lambda c:atan2(c[0], c[1]))
关于python - 将圆的点/坐标按逻辑顺序排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20506712/