我有一组x和y坐标的点,如下图所示。9个点的坐标存储在一个列表中,如下所示:
L = [[5,2], [4,1], [3.5,1], [1,2], [2,1], [3,1], [3,3], [4,3] , [2,3]]
其思想是从原点顺时针排序点。在这种情况下,原点是着色的点,它有一个箭头指示排序的方向。不要担心创建方法来确定来源,因为它已经解决了。
因此,在排序之后,列表L
应该如下所示:
L = [[2,3], [3,3], [4,3], [5,2], [4,1], [3.5,1], [3,1], [2,1], [1,2]]
注意x和y坐标没有改变。存储顺序有什么变化。
您对python语言中的算法、脚本或方法有什么想法吗?
这应该说明问题,给出一个可视化工具
但对于在同一距离上获得一组点的正确入口点来说,这并不总是有效的

用一点三角法就没那么难了。也许你知道,但是两个(标准化的)向量之间的角度是
acos(vec1 * vec2)
。然而,这只计算投影角度,但是可以使用atan2
来计算方向感知角度。这意味着一个函数计算它,然后将它用作排序的
key
将是一个好方法:A
sorted
运行:在原点周围有一个矩形网格,也可以按预期工作:
即使更改参考向量:
感谢
@Scott Mermelstein
提供了更好的函数名,感谢@f5r5e5d
提供了atan2
建议。相关问题 更多 >
编程相关推荐