gpt4 book ai didi

python - 在python中沿圆形方向绘制n个相等点

转载 作者:行者123 更新时间:2023-12-05 03:19:27 25 4
gpt4 key购买 nike

我正在做一个任务,我必须做一个有 n 个相等部分的圆。我提供了圆的中心和半径,分别为 (0,0) 和 4。为了完成这个任务,我写了下面的代码,

parts = 36                     # desire number of parts of the circle          
theta_zero = 360/parts
R = 4 # Radius

x_p = []
y_p = []

n = 0
for n in range(0,36):
x_p.append(R * math.cos(n*theta_zero))
y_p.append(R * math.sin(n*theta_zero))

但是,在运行这段代码之后,我得到了如下所示的输出,这似乎不是我应该拥有的。

enter image description here

请让我知道我做错了什么,并给出一些正确代码的建议。谢谢

最佳答案

除了生成以度为单位的数字并将它们传递给需要弧度的函数之外,还有一种更简单且不易出错的方法来生成均匀间隔的坐标:

t0 = np.linspace(0, 2 * np.pi, parts, endpoint=False)
x0 = R * np.cos(t0)
y0 = R * np.sin(t0)

endpoint=False 确保您最终得到 36 个分区而不是 35 个,否则 02 * np.pi 会重叠.

如果你想为你的圈子连接点,你会想要重叠。在那种情况下,你会做

t1 = np.linspace(0, 2 * np.pi, parts + 1)
x1 = R * np.cos(t1)
y1 = R * np.sin(t1)

下面是绘制一个包含 36 个扇区的圆圈的方法:

plt.plot(x1, y1)
plt.plot(np.stack((np.zeros(parts), x0), 0),
np.stack((np.zeros(parts), y0), 0))

最后,如果你想让你的圆看起来像一个圆,你可能想在绘图后运行 plt.axis('equal')

关于python - 在python中沿圆形方向绘制n个相等点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73454472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com