首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用矩形面片在python中创建圆形几何

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

Stack Overflow用户
提问于 2020-03-08 21:03:57
回答 1查看 38关注 0票数 0

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

代码语言:javascript
复制
rectangle = plt.Rectangle((x,y), width, height)
plt.gca().add_patch(rectangle)

然后我想要放置一个圆形的方式,这样它就可以创建一个看起来像检测器的东西,用矩形作为“检测器块”。我怎样才能做到这一点呢?谢谢

最终结果应与Final Result显示的图像类似

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-09 05:25:52

要创建一个包含N个矩形的图形,请将一个圆均匀地分成N个部分,然后再分成2pi/N的角度。X和y是后续角度的正弦和余弦乘以内圆的半径。

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

请注意,正弦和余弦以弧度为单位对角度进行运算,而矩形的旋转则以度为单位。

由于面片不会自动设置打印限制,因此需要显式设置它们。

下面是一些帮助您入门的代码:

代码语言:javascript
复制
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()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60587728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档