我想使用矩形面片在python中创建一个圆形几何图形,所以我想创建一个矩形面片,当我查看文档时,可以使用
rectangle = plt.Rectangle((x,y), width, height)
plt.gca().add_patch(rectangle)然后我想要放置一个圆形的方式,这样它就可以创建一个看起来像检测器的东西,用矩形作为“检测器块”。我怎样才能做到这一点呢?谢谢
最终结果应与Final Result显示的图像类似
发布于 2020-03-09 05:25:52
要创建一个包含N个矩形的图形,请将一个圆均匀地分成N个部分,然后再分成2pi/N的角度。X和y是后续角度的正弦和余弦乘以内圆的半径。
矩形本身需要按线段的平均角度旋转。和-90度,使宽度垂直于半径。
请注意,正弦和余弦以弧度为单位对角度进行运算,而矩形的旋转则以度为单位。
由于面片不会自动设置打印限制,因此需要显式设置它们。
下面是一些帮助您入门的代码:
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()
width = 6
height = 4
num_rect = 12
r = width / 2 / np.sin(np.pi / num_rect)
for i in range(num_rect):
theta = 2 * np.pi * (i + 0.5) / num_rect
x = r * np.cos(theta)
y = r * np.sin(theta)
rectangle = plt.Rectangle((x, y), width, height, angle=360 * i / num_rect - 90,
edgecolor='dodgerblue', facecolor=plt.cm.rainbow(i / num_rect), alpha=.5)
ax.add_patch(rectangle)
d = (r + height) * 1.1
ax.set_xlim(-d, d)
ax.set_ylim(-d, d)
ax.set_aspect('equal')
plt.show()

https://stackoverflow.com/questions/60587728
复制相似问题