Python繪制動態(tài)的521玫瑰花
敲了這么多年代碼,每年都得畫一些心啊花啊什么的,所以現(xiàn)在常規(guī)的已經(jīng)有些倦怠了,至少也得來個三維圖形才看著比較合理,而且光是三維的也沒啥意思,最好再加上能動起來。
靜態(tài)的玫瑰
網(wǎng)上有很多生成玫瑰花的代碼,比如下面這個
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)的玫瑰
但是,如果只有這一朵花,就算色彩很絢麗,看久了也會感覺枯燥,所以下面來給這張圖片加上一點(diǎn)動作,比如讓這朵花在空間中旋轉(zhuǎn),方法非常簡單,只要乘上一個旋轉(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")
但最后的效果不太理想,貌似在抽搐,感覺非常離奇
到此這篇關(guān)于Python繪制動態(tài)的521玫瑰花的文章就介紹到這了,更多相關(guān)Python玫瑰花內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pytorch 權(quán)重weight 與 梯度grad 可視化操作
這篇文章主要介紹了pytorch 權(quán)重weight 與 梯度grad 可視化操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06Blender?Python編程實現(xiàn)批量導(dǎo)入網(wǎng)格并保存渲染圖像
這篇文章主要為大家介紹了Blender?Python?編程實現(xiàn)批量導(dǎo)入網(wǎng)格并保存渲染圖像示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08用Python自動清理系統(tǒng)垃圾的實現(xiàn)
這篇文章主要介紹了用Python自動清理系統(tǒng)垃圾的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01