使用Python Matplotlib使用“开始”,“结束”,“中心”和“半径”将圆弧绘制为多边形

时间:2018-05-15 09:00:54

标签: python matplotlib

我使用下面的代码只包含输入start_pointend_point

import matplotlib.pyplot as plt
from matplotlib.path import Path
import matplotlib.patches as patches

start_point = (25, 50)
end_point = (50, 25)
center = (25, 25)
radius = (25
# We need to some how automatically calculate this midpoint
mid_point = (45, 45)
verts = [start_point, mid_point, end_point]
codes = [Path.MOVETO, Path.CURVE3, Path.CURVE3]#, Path.CLOSEPOLY]

path = Path(verts, codes)
shape = patches.PathPatch(path, facecolor='none', lw=0.75)
plt.gca().add_patch(shape)
plt.axis('scaled')

我得到以下输出

enter image description here

我需要以下输出(我使用MS Paint创建了以下输出)

[说明:将弧转换为以直线连接的点集。我需要那些点作为列表]

enter image description here

1 个答案:

答案 0 :(得分:1)

要获取通过曲线(CURVE3CURVE4)定义的路径上的坐标,您可以使用Path的{​​{1}}方法。这将给出.to_polygons()形状的坐标数组。

N x 2

enter image description here

无法操纵poly, = path.to_polygons() plt.plot(*zip(*poly), marker="o", ls="None") 创建的点数。如果这是一项要求,您可以从给定的点创建own Bezier curve,如下所示。在这里,我们沿着路径选择32个点。

.to_polygon

enter image description here