我使用下面的代码只包含输入start_point
和end_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')
我得到以下输出
我需要以下输出(我使用MS Paint
创建了以下输出)
[说明:将弧转换为以直线连接的点集。我需要那些点作为列表]
答案 0 :(得分:1)
要获取通过曲线(CURVE3
或CURVE4
)定义的路径上的坐标,您可以使用Path
的{{1}}方法。这将给出.to_polygons()
形状的坐标数组。
N x 2
无法操纵poly, = path.to_polygons()
plt.plot(*zip(*poly), marker="o", ls="None")
创建的点数。如果这是一项要求,您可以从给定的点创建own Bezier curve,如下所示。在这里,我们沿着路径选择32个点。
.to_polygon