如何使用矩形面片在python中创建圆形几何体

如何使用矩形面片在python中创建圆形几何体,python,matplotlib,Python,Matplotlib,我想在python中使用矩形面片创建一个圆形几何体,所以我想创建一个矩形面片,当我查看文档时,可以通过 rectangle = plt.Rectangle((x,y), width, height) plt.gca().add_patch(rectangle) 然后我想把它放在一个圆形的地方,这样它可以创建一个看起来像检测器的东西,用矩形作为“检测器块”。我怎样才能做到这一点?多谢各位 最终结果应如图所示 要创建一个有N个矩形的图形,请将一个圆均匀地分成N个部分,从而分成2pi/N的角度。x和

我想在python中使用矩形面片创建一个圆形几何体,所以我想创建一个矩形面片,当我查看文档时,可以通过

rectangle = plt.Rectangle((x,y), width, height)
plt.gca().add_patch(rectangle)
然后我想把它放在一个圆形的地方,这样它可以创建一个看起来像检测器的东西,用矩形作为“检测器块”。我怎样才能做到这一点?多谢各位

最终结果应如图所示

要创建一个有N个矩形的图形,请将一个圆均匀地分成N个部分,从而分成
2pi/N的角度。x和y是后续角度的正弦和余弦乘以内圈半径

矩形本身需要按线段的平均角度旋转。和-90度,使宽度垂直于半径

请注意,正弦和余弦以弧度表示作用于角度,而矩形的旋转以度表示

由于修补程序不会自动设置打印限制,因此需要显式设置它们

以下是一些让您开始学习的代码:

导入matplotlib.pyplot作为plt
将numpy作为np导入
图,ax=plt.子批次()
宽度=6
高度=4
num_rect=12
r=宽度/2/np.sin(np.pi/num_-rect)
对于范围内的i(num_rect):
θ=2*np.pi*(i+0.5)/num_rect
x=r*np.cos(θ)
y=r*np.sin(θ)
矩形=plt.矩形((x,y),宽度,高度,角度=360*i/num_rect-90,
edgecolor='dodgerblue',facecolor=plt.cm.rainbow(i/num_rect),alpha=0.5)
ax.添加补丁(矩形)
d=(r+高度)*1.1
ax.set_xlim(-d,d)
ax.set_ylim(-d,d)
ax.set_方面(“相等”)
plt.show()

你能发布一张图片,看看结果应该是什么样子吗?对我来说,还不清楚你所说的“探测块”是什么意思,以及你希望得到的最终图像。请查看编辑后的帖子,我已经附上了最终结果的图像