【python】绘制玫瑰花

本文介绍了使用Python的numpy和matplotlib库创建一个3D玫瑰图案的示例,通过定义径向和角度函数来控制图案的形状和复杂性,最后展示了如何在matplotlib中进行可视化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# x为玫瑰图案的径向分布,t为角度分布
x_values = np.linspace(0, 1, num=30)
theta = np.linspace(0, 1, num=1200) * 50 * np.pi - 4 * np.pi
x_values, theta = np.meshgrid(x_values, theta)

# p为角度函数,控制玫瑰图案的形态
p = 0.5 * np.pi * np.exp(-theta / (8 * np.pi))

# change为微小的扰动函数,增加图案的复杂性
change = np.sin(20 * theta) / 50

# u为径向函数,控制图案的半径变化
u = 1 - (1 - np.mod(3.3 * theta, 2 * np.pi) / np.pi) ** 4 / 2 + change

# y为径向分布函数
y_values = 2 * (x_values ** 2 - x_values) ** 2 * np.sin(p)

# r为最终的径向分布,h为高度分布
r = u * (x_values * np.sin(p) + y_values * np.cos(p)) * 1.5
h = u * (x_values * np.cos(p) - y_values * np.sin(p))
# RdPu_r为红色,Blues_r为蓝色
ax.plot_surface(r * np.cos(theta), r * np.sin(theta), h, rstride=1, cstride=1, cmap=plt.cm.RdPu_r)

# 隐藏网格
ax.grid(False)

# 隐藏工具栏
plt.axis('off')

# 显示
plt.show()

注意:需要安装numpy和matplotlib库

pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zz的学习笔记本

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值