Python繪制動(dòng)態(tài)的521玫瑰花
敲了這么多年代碼,每年都得畫一些心啊花啊什么的,所以現(xiàn)在常規(guī)的已經(jīng)有些倦怠了,至少也得來(lái)個(gè)三維圖形才看著比較合理,而且光是三維的也沒(méi)啥意思,最好再加上能動(dòng)起來(lái)。
靜態(tài)的玫瑰
網(wǎng)上有很多生成玫瑰花的代碼,比如下面這個(gè)
from matplotlib import cm import matplotlib.pyplot as plt import numpy as np [x,t]=np.meshgrid(np.arange(25)/24.0, np.arange(0,575.5,0.5)/575*17*np.pi-2*np.pi) p=(np.pi/2)*np.exp(-t/(8*np.pi)) u=1-(1-np.mod(3.6*t,2*np.pi)/np.pi)**4/2 y=2*(x**2-x)**2*np.sin(p) r=u*(x*np.sin(p)+y*np.cos(p)) X,Y = r*np.cos(t), r*np.sin(t) Z = u*(x*np.cos(p)-y*np.sin(p)) ax=plt.subplot(projection='3d') ax.plot_surface(X, Y, Z, lw=0, rstride=1, cstride=1,cmap=cm.gist_rainbow_r) plt.axis('off') plt.show()
效果如下
其公式為
旋轉(zhuǎn)的玫瑰
但是,如果只有這一朵花,就算色彩很絢麗,看久了也會(huì)感覺(jué)枯燥,所以下面來(lái)給這張圖片加上一點(diǎn)動(dòng)作,比如讓這朵花在空間中旋轉(zhuǎn),方法非常簡(jiǎn)單,只要乘上一個(gè)旋轉(zhuǎn)矩陣就OK為了書寫方便,記Sθ=sinθ,Cθ=cosθ,可列出下表。
下面的代碼的含義就是,玫瑰花繞著Z軸旋轉(zhuǎn)。
from matplotlib import animation import imageio cos = lambda th : np.cos(np.deg2rad(th)) sin = lambda th : np.sin(np.deg2rad(th)) # 此為旋轉(zhuǎn)矩陣 Rz = lambda th : np.array([ [cos(th) , -sin(th), 0], [sin(th), cos(th), 0], [0 , 0, 1]]) xyz = np.array([X,Y,Z]).reshape(3,-1) gifImgs = [] for n in np.arange(0,30,1): xd,yd,zd = (Rx(n)@Ry(n)@Rz(n)@xyz).reshape(3,1151,25) ax = plt.subplot(projection='3d') ax.plot_surface(xd,yd,zd, lw=0, rstride=1, cstride=1,cmap=cm.gist_rainbow_r) plt.axis('off') plt.savefig("%d.jpg" % n) gifImgs.append(imageio.imread("%d.jpg" % n)) imageio.mimsave("test.gif",gifImgs,fps=5) ani = animation.FuncAnimation(fig, animate, range(0, 360, 2), interval=25, blit=True) #plt.show() ani.save("zyx.gif")
但最后的效果不太理想,貌似在抽搐,感覺(jué)非常離奇
到此這篇關(guān)于Python繪制動(dòng)態(tài)的521玫瑰花的文章就介紹到這了,更多相關(guān)Python玫瑰花內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實(shí)現(xiàn)圖片二值化及灰度處理方式
今天小編就為大家分享一篇python實(shí)現(xiàn)圖片二值化及灰度處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12python基于itchat模塊實(shí)現(xiàn)微信防撤回
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)微信防撤回,基于itchat模塊,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04pytorch 權(quán)重weight 與 梯度grad 可視化操作
這篇文章主要介紹了pytorch 權(quán)重weight 與 梯度grad 可視化操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06python代碼實(shí)現(xiàn)煙花實(shí)例
這篇文章主要給大家分享了python煙花詳細(xì)的代碼,文章主要以python煙花的代碼展開全文,所以解說(shuō)會(huì)比較少,代碼較多。喜歡的小伙伴可以參考一下,希望對(duì)你有所幫助2021-12-12Blender?Python編程實(shí)現(xiàn)批量導(dǎo)入網(wǎng)格并保存渲染圖像
這篇文章主要為大家介紹了Blender?Python?編程實(shí)現(xiàn)批量導(dǎo)入網(wǎng)格并保存渲染圖像示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08Python?OpenCV實(shí)現(xiàn)人物動(dòng)漫化效果
這篇文章主要介紹了利用Python和OpenCV實(shí)現(xiàn)人物的動(dòng)漫化特效,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python和OpenCV有一定的幫助,需要的可以了解一下2022-01-01用Python自動(dòng)清理系統(tǒng)垃圾的實(shí)現(xiàn)
這篇文章主要介紹了用Python自動(dòng)清理系統(tǒng)垃圾的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01Python實(shí)現(xiàn)簡(jiǎn)繁體轉(zhuǎn)換
很多時(shí)候簡(jiǎn)繁體轉(zhuǎn)換,掌握了簡(jiǎn)體與繁體的轉(zhuǎn)換,往往能夠事半功倍,本文主要介紹了Python實(shí)現(xiàn)簡(jiǎn)繁體轉(zhuǎn)換,感興趣的可以了解一下2021-06-06Python+OpenCV進(jìn)行人臉面部表情識(shí)別
這篇文章主要介紹了通過(guò)Python OpenCV實(shí)現(xiàn)對(duì)人臉面部表情識(shí)別,判斷人是否為笑臉,文中的示例代碼非常詳細(xì),需要的朋友可以參考一下2021-12-12