[Day30] 完结洒花❀ 看完赛心得顺便用Python画 3D 渐层花朵!

谢谢看到这里的各位,若没有你们来看我的文章我可能早就弃赛了XD
其实我报名完後就後悔了,结果竟然没有取消报名的按钮(汗,只好硬着头皮上了...

能完赛真的是奇蹟,收到这麽多朋友留言回应也是奇蹟!
也感谢每一个在iT邦帮忙回答我问题的大神们,让我能很快解决遇到的问题!
阿既然都要完结洒花了,就顺便用Python的Matplotlib套件画3D花朵吧>< (转的好硬)

使用环境

程序码

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.grid(False)

ax.set_xticks([]) 
ax.set_yticks([]) 
ax.set_zticks([])

# 隐藏轴线
plt.axis('off') 
[x, t] = np.meshgrid(np.array(range(25)) / 24.0, np.arange(0, 575.5, 0.5) / 575 * 20 * np.pi - 4*np.pi)
p = (np.pi / 2) * np.exp(-t / (8 * np.pi))
# 调整花瓣边缘的锯齿
change = np.sin(15*t)/150
# 调整花瓣开阖的角度,参数可以自己调整
u = 1 - (1 - np.mod(3.3 * t, 2 * np.pi) / np.pi) ** 4 / 2 + change
y = 2 * (x ** 2 - x) ** 2 * np.sin(p)
r = u * (x * np.sin(p) + y * np.cos(p))
h = u * (x * np.cos(p) - y * np.sin(p))
# 调整花瓣颜色
c = plt.get_cmap('PuRd')
surf = ax.plot_surface(r * np.cos(t), r * np.sin(t), h, rstride=1, cstride=1,
                       cmap= c, linewidth=0, antialiased=True)
plt.show()

成果发表会

调整公式参数和颜色就可以变换多种花朵了喔~ 而且Matplotlib的颜色都配的超漂亮!!
https://ithelp.ithome.com.tw/upload/images/20210929/201332863GJqlz69U4.png

最後放上几种花朵给大家欣赏~
https://ithelp.ithome.com.tw/upload/images/20210929/20133286PVru7TPfYG.png


<<:  终章 - 资安碎碎念与心得

>>:  每个人都该学的30个Python技巧|技巧 30:档案操作(字幕、衬乐、练习)

Proxmox VE 网路基本设定

按照前一篇的程序安装完成并重开机後,即可开始正式使用 Proxmox VE 系统,请以浏览器连接至...

Day 12 - var 、let、const

var 为全域变数,超不谨慎,宣告变数後值可被改变,也可以重复宣告。 let 为区域变数,较谨慎,...

Day 3 - Playing with CSS

前言 JS 30 是由加拿大的全端工程师 Wes Bos 免费提供的 JavaScript 简单应用...

Vue.js实做星星评分功能

今天要来简单的实做星星评分的功能 在这项单元内也会简单的讲解到props与$emit的传递 先附上成...

【Day11】:库函数包装—对於底层暂存器的操纵(下)

C语言对暂存器的封装 封装汇流排和外设基地址 为了方便使用者理解和记忆,我们把汇流排基地址和外设基地...