gpt4 book ai didi

python - 在Python中逆时针方向对多边形坐标列表进行排序

转载 作者:行者123 更新时间:2023-12-04 03:59:20 24 4
gpt4 key购买 nike

我有许多包含坐标元组的子列表,因此子列表中的元组形成一个多边形。

list_test = [[(0.115, 0.993), (0.319, 0.948), (0.236, 0.849)], [(0.319, 0.948), (0.640, 0.768), (0.236, 0.849), (0.471, 0.566)], [(0.115, -0.993), (-0.115, -0.993), (0.236, -0.849), (-0.236, -0.849), (0.0, -0.566)]]

这些多边形是由矩形和直线相交而成,因此它们可以是三角形、矩形或五边形(不涉及“有趣的形状”),并且它们都位于单位圆内。如何按逆时针方向对每个子列表中的坐标元组进行排序?

最佳答案

只需根据原点获取每个点的 atan 并对值进行排序。

for points in list_test:
points.sort(key=lambda x: math.atan2(x[1] - 0, x[0] - 0))

给定示例的简单图:

fig, ax = plt.subplots()
for points in list_test:
for point in points:
ax.scatter(point[0], point[1], c='b')
ax.annotate(f" {point}", xy=point)
ax.axhline(y=0, color='k')
ax.axvline(x=0, color='k')
plt.show()

关于python - 在Python中逆时针方向对多边形坐标列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63338000/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com