如何使用 Python 代码绘制费马螺线

举报
汪子熙 发表于 2025/12/01 21:19:08 2025/12/01
【摘要】 费马螺线(Fermat’s Spiral)也称为抛物线螺线,其在极坐标中的表示为[r^2 = a^2 \theta]。我们可以通过修改代码来正确地生成和绘制费马螺线。以下是正确的代码:import numpy as npimport matplotlib.pyplot as plt# 生成theta值theta = np.linspace(0, 24 * np.pi, 1000) # 增加...

费马螺线(Fermat’s Spiral)也称为抛物线螺线,其在极坐标中的表示为[r^2 = a^2 \theta]。我们可以通过修改代码来正确地生成和绘制费马螺线。以下是正确的代码:

import numpy as np
import matplotlib.pyplot as plt

# 生成theta值
theta = np.linspace(0, 24 * np.pi, 1000)  # 增加旋转次数以显示更多的螺旋

a = 1  # 螺线的系数,控制螺旋间的间距

# 计算费马螺线的半径r
r = np.sqrt(a * theta)

# 将极坐标转换为笛卡尔坐标
x = r * np.cos(theta)
y = r * np.sin(theta)

# 绘制费马螺线
plt.figure(figsize=(6, 6))  # 设置图像大小
plt.plot(x, y, label="Fermat's Spiral")  # 绘制螺线

# 另一侧的螺线
x2 = r * np.cos(-theta)
y2 = r * np.sin(-theta)
plt.plot(x2, y2, label="Fermat's Spiral (Mirror)")  # 绘制镜像螺线

plt.axis('equal')  # 确保x和y轴具有相同的比例,以避免图像扭曲
plt.legend()  # 显示图例
plt.grid(True)  # 显示网格
plt.title("Fermat's Spiral")  # 设置图像标题

# 保存图像
plt.savefig('fermats_spiral_correct.png', dpi=300, bbox_inches='tight')
plt.show()

这段代码首先使用numpy生成了一个线性分布的theta数组,然后根据费马螺线的极坐标方程计算每个点的半径r。接着,通过极坐标到笛卡尔坐标的转换得到了每个点的xy坐标。为了显示出完整的费马螺线形状,代码绘制了正向和反向两个方向的螺线。最后,使用plt.savefig方法将图像保存为文件,并通过plt.show()显示出来。

绘制效果如下图所示:

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。