首页 > 解决方案 > 从 matplotlib.patches 中的 CirclePolygon 获取坐标

问题描述

我有以下代码,它使用 Python matplotlib 生成一个圆形多边形(圆形补丁的多边形近似。)。

import matplotlib.pyplot as plt
from matplotlib.patches import CirclePolygon

circle = CirclePolygon((0, 0), radius = 0.75, fc = 'y')
plt.gca().add_patch(circle)
plt.axis('scaled')
plt.show()

对于上面的代码,我的输出如下:
圆多边形

我需要所有共同形成圆形多边形的点。如何做到这一点?

标签: pythonmatplotlib

解决方案


多边形基于路径。您可以通过circle.get_path(). 您vertices对这条路径感兴趣。最后你需要根据多边形的变换来变换它们。

import matplotlib.pyplot as plt
from matplotlib.patches import CirclePolygon

circle = CirclePolygon((0, 0), radius = 0.75, fc = 'y')
plt.gca().add_patch(circle)

verts = circle.get_path().vertices
trans = circle.get_patch_transform()
points = trans.transform(verts)
print(points)

plt.plot(points[:,0],points[:,1])
plt.axis('scaled')
plt.show()

蓝线是由此获得的点的图。

在此处输入图像描述


推荐阅读