日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python莫比乌斯环_【干货】用python绘出神奇的莫比乌斯环~

發布時間:2024/3/12 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python莫比乌斯环_【干货】用python绘出神奇的莫比乌斯环~ 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

昨天寫了一篇subplot的練習放到微信公眾賬號中,想用一個莫比烏斯環的圖片作為封面圖片,就去維基百科上扒了一個。但是分辨率很低,就想自己繪出一個來。沒想到越陷越深,就一起把3D繪圖給學習了一遍。

源代碼(請點擊前面文字)

函數已經給出,剩下的就是取值,繪圖。要繪3D圖,X,Y,Z都得是矩陣。平常的做法就是遍歷,給矩陣中的每一個元素賦值,如果取樣點為100,那么計算X的賦值次數就是100*100,每次賦值還要計算兩次cos()。

這就要請出今天的明星-numpy。

numpy是python中的高效數值運算模塊。其中包含了各種數學運算,以及array數據類型,這些都是用C寫的,如果只是進行少量數值的運算,numpy的性能是低于math的,但是大批量的數值運算,numpy的優勢就體現出來了。

首先介紹的是array數據類型,很像list,但是可以不用迭代,直接運算。

>>> from numpy import *>>> a = array([1,2,3,4])>>> a * 3array([ 3,??6,??9, 12])

這樣就可以直接把取樣點直接投到函數中得到X的值。

取樣也很方便,比如在這個例子中,我們可以這么取v和u:

v = linspace(-1.0, 1.0, num=500, endpoint=True) u = linspace(0, 2*pi, num=500, endpoint=True)

參數分別是(start,stop,number of sample, 是否包含終止數值)

但是array沒有append或者add方法,而且,我試了很久,也沒有辦法把數據一行一行的添加到一個array中,于是我找了list當作中間人。

把運算復雜度低的v迭代,每次計算出全部的u。

for value_v in v:answer.append((1. + value_v / 2. * cos(u/2.)) * cos(u))

要提前把v和u取成array類型,要提前定義answer是list。更高效的是直接在list中迭代,我們可以為X,Y,Z分別建立函數,返回數值array。

def func_x(v, u):? ? answer = [((1. + value_v / 2. * cos(u/2.)) * cos(u)) for value_v in v]? ? return array(answer)

其他坐標軸依此類推。

案例

我們已經準備好了所需要材料,就等著下鍋了。3Dplot我用的是mpl_toolkits.mplot中的Axes3D模塊,這是matplotlib中的一部分。繪圖也很簡單,我用的是其中的surface方法。

fig = plt.figure()ax = fig.add_subplot(111, projection='3d')surf = ax.plot_surface(X, Y, Z)

先新建一個figure(為了設置dpi),然后以添加子圖的形式添加進去就行。這樣就已經成型了,提高下dpi

fig = plt.figure(dpi=150)復制代碼

增加點色彩變化

surf = ax.plot_surface(X, Y, Z, cmap=cm.coolwarm)

需要從matplotlib中倒入cm,cm模塊很有趣,有著很多的色彩變化,可以參考官方文檔。我嘗試了多種,最后選擇是YlOrBr,是yellow or brand,效果圖最后會貼出來。

去掉那些黑色曲線

surf = ax.plot_surface(X, Y, Z, cmap=cm.coolwarm, linewidth=0)復制代碼

然后還玩了一把透明度alpha,最后發現透明度低一點的好(alpha越小,透明度越高)

surf = ax.plot_surface(X, Y, Z, cmap=cm.coolwarm, linewidth=0, alpha=0.9)復制代碼

現在的圖z軸太高,造成立體感不明顯,于是我們拉長z軸,讓圖扁平一點。

ax.set_zlim(-2., 2.)復制代碼

然后去掉坐標軸

plt.axis('off')復制代碼

如果用show()方法顯示圖表,然后保存,背景不是透明的,我們可以用figure.save()取保存

fig.savefig('mobiusband.png', transparent=True)復制代碼

發現圖不夠清晰,增加dpi

fig.savefig('mobiusband.png', transparent=True, dpi=600)復制代碼

然后就得到了最終的圖了

摘自:櫛風沐雨

總結

以上是生活随笔為你收集整理的python莫比乌斯环_【干货】用python绘出神奇的莫比乌斯环~的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄色综合网站 | 日韩精品视频在线 | 少妇一区二区三区四区 | 神马午夜激情 | 亚洲国产福利 | 成人一区二区三区在线 | 浮妇高潮喷白浆视频 | 国产精品91一区二区 | 亚洲一区免费在线观看 | 手机看片日韩在线 | 黄色三级三级 | 国产免费一区二区视频 | 欧美啪视频 | 精品人妻人伦一区二区有限公司 | 九色影视 | 亚洲综合久久久 | 91精品在线免费观看 | 国产91久久精品一区二区 | 无码人妻精品一区二区蜜桃网站 | 日韩成人av片| 精品动漫一区二区三区 | 精品h视频| 国产一级二级三级视频 | 天天天天 | 欧美日韩精品区别 | 明星双性精跪趴灌满h | 亚欧洲乱码视频 | 91精品国 | 日本特级黄色 | 午夜网站免费 | 中文字幕一区二区三区四区免费看 | 好了av在线 | 久久大香焦| 久久影院一区二区 | 欧美日韩国产专区 | 欧美成人免费一级人片100 | 欧洲美女与动交zozzo | 成人h视频在线观看 | 久久美女性网 | 日韩特级黄色片 | 欧美激情视频在线观看 | 222aaa| 免费av成人 | 蜜桃视频成人在线观看 | 中文字幕乱妇无码av在线 | 日韩精品一区二区三区久久 | 长篇高h肉爽文丝袜 | 献给魔王伊伏洛基亚吧动漫在线观看 | 国产伦乱 | 成人a v视频| www中文字幕在线观看 | 欧美成人片在线观看 | 欧美性区 | 日本人六九视频 | 欧美午夜精品 | 男女视频网站 | 超碰青草| 国产成人精品免费视频 | 亚洲五月花 | 国产精品一卡二卡在线观看 | 91精品久久久久久 | 亚洲丝袜视频 | 青娱乐极品在线 | 一边摸内裤一边吻胸 | 小香蕉av| av网站不卡| 亚洲免费观看av | 天天操天天摸天天干 | 久久综合九九 | 亚洲啪啪网 | 久久精品色妇熟妇丰满人妻 | 国产精品熟妇人妻g奶一区 a少妇 | 变态另类一区二区 | 字幕网av | 久久成人高清 | 欧美国产在线看 | 成年人三级网站 | 日韩极品一区 | 欧美在线观看一区二区 | 91精品国产99| 99精品热视频 | 免费精品视频在线观看 | www.精品在线| 午夜影院性| 成人av第一页 | 一本一道波多野结衣av黑人 | 国产亚洲精品成人 | 亚洲美女精品 | 美女国产精品 | 日本一区高清 | 日韩欧美三级在线 | 国精品一区 | 中文字幕亚洲在线观看 | 琪琪成人 | 4438亚洲| 欧洲成人午夜精品无码区久久 | 美女激情av | 成人黄页 | 高潮毛片无遮挡高清免费 |