最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實現(xiàn)繪制3D地球旋轉(zhuǎn)效果

 更新時間:2023年02月28日 08:43:40   作者:微小冷  
這篇文章主要為大家詳細介紹了如何利用Python實現(xiàn)繪制出3D地球旋轉(zhuǎn)的效果,文中的示例代碼講解詳細,具有一定的借鑒價值,需要的可以參考一下

畫一個地球

想畫一個轉(zhuǎn)動的地球,那么首先要有一個球,或者說要有一個球面,用參數(shù)方程可以表示為

x?=rcos?cosθ

y=rcos?sinθ

z=rsin??

然后要有一個地球,或者說要有一個地圖,用來作為貼圖,映射到球面上。

import numpy as np
import matplotlib.pyplot as plt
path = "earth1.jpg"
img = plt.imread(path)
h, w, c = img.shape
ys, xs = np.indices([h, w])
th = xs/w*np.pi*2
phi = np.pi/2 - ys/h*np.pi

x = np.cos(phi)*np.cos(th)
y = np.cos(phi)*np.sin(th)
z = np.sin(phi)

cs = [tuple(c/255) for c in img.reshape(-1,3)]
ax = plt.subplot(projection='3d')
ax.scatter(x, y, z, marker='.', c=cs)
plt.axis('off')
plt.show()

其中scatter畫的是散點圖,c=cs為顏色映射參數(shù),所以溫馨提示,選取的地球圖片不宜過大,否則點太多會讓電腦爆掉。

最后得到的效果如下

讓地球轉(zhuǎn)起來

三維空間中的旋轉(zhuǎn)矩陣如下表所示,具體講解可參考這兩篇博客:旋轉(zhuǎn)坐標軸??旋轉(zhuǎn)正方體

有了旋轉(zhuǎn)矩陣,接下來就是讓地球轉(zhuǎn)起來。

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import animation

cos = lambda th : np.cos(np.deg2rad(th))
sin = lambda th : np.sin(np.deg2rad(th))

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)

fig = plt.figure(figsize=(5,5))
ax = fig.add_subplot(projection='3d')
ax.grid()

lines = ax.scatter(x, y, z, marker='.', c=cs)

def animate(n):
    # 按照xyz順序旋轉(zhuǎn)
    axis = [2,1,0]
    shape = xyz.shape
    lines._offsets3d = Rz(n)@xyz
    return lines,

ani = animation.FuncAnimation(fig, animate, 
    range(0, 360, 2), interval=25, blit=True)

#plt.show()
ani.save("zyx.gif")

效果如下

以上就是Python實現(xiàn)繪制3D地球旋轉(zhuǎn)效果的詳細內(nèi)容,更多關(guān)于Python3D地球旋轉(zhuǎn)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python并發(fā)編程之Futures模塊詳解

    Python并發(fā)編程之Futures模塊詳解

    Python是一門流行且強大的編程語言,具備靈活的異步編程能力,在并發(fā)編程中,Futures模塊是Python提供的一個強大工具,下面我們就來看看它的概念和用法吧
    2023-08-08
  • python dumps和loads區(qū)別詳解

    python dumps和loads區(qū)別詳解

    這篇文章主要介紹了python dumps和loads區(qū)別詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • python辦公自動化(Excel)的實例教程

    python辦公自動化(Excel)的實例教程

    使用Excel自動化處理,將會用到Python第三方庫,所以我們需要提前通過來進行安裝,下面這篇文章主要給大家介紹了關(guān)于python辦公自動化(Excel)的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • Django項目中動態(tài)設(shè)置靜態(tài)文件路徑的全過程

    Django項目中動態(tài)設(shè)置靜態(tài)文件路徑的全過程

    這篇文章主要給大家介紹了關(guān)于Django項目中動態(tài)設(shè)置靜態(tài)文件路徑的相關(guān)資料,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-02-02
  • Python實現(xiàn)掃碼工具的示例代碼

    Python實現(xiàn)掃碼工具的示例代碼

    這篇文章主要介紹了Python實現(xiàn)掃碼工具的示例代碼,代碼簡單易懂對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • 解決python使用pd.read_csv()出現(xiàn)錯誤UnicodeDecodeError:?'utf-8'?codec?can't?decode......

    解決python使用pd.read_csv()出現(xiàn)錯誤UnicodeDecodeError:?'utf-8&

    你是否有過之前用pd.read打開csv文件都正常,但突然有一天運行以前的代碼就突然報錯,這篇文章主要給大家介紹了關(guān)于如何解決python使用pd.read_csv()出現(xiàn)錯誤UnicodeDecodeError:?'utf-8'?codec?can't?decode......的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • Python?pytest自動化測試庫十個強大用法示例

    Python?pytest自動化測試庫十個強大用法示例

    本文將介紹Python的pytest庫的10個強大用法,并提供相應的代碼示例,幫助你更好地理解和應用單元測試,它提供了許多高級功能和便利的用法,能夠讓我們更輕松地編寫和執(zhí)行單元測試
    2024-01-01
  • PyQt5的PyQtGraph實踐系列3之實時數(shù)據(jù)更新繪制圖形

    PyQt5的PyQtGraph實踐系列3之實時數(shù)據(jù)更新繪制圖形

    這篇文章主要介紹了PyQt5的PyQtGraph實踐系列3之實時數(shù)據(jù)更新繪制圖形,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • pytorch?SummaryWriter保存日志的方法

    pytorch?SummaryWriter保存日志的方法

    這篇文章主要介紹了pytorch?SummaryWriter保存日志的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • Python把excel文件數(shù)據(jù)轉(zhuǎn)化為字典格式存儲詳解

    Python把excel文件數(shù)據(jù)轉(zhuǎn)化為字典格式存儲詳解

    這篇文章主要介紹了Python把excel文件數(shù)據(jù)轉(zhuǎn)化為字典格式存儲詳解,在Python中有時候需要操作excel表格的數(shù)據(jù),把excel表格轉(zhuǎn)化為字典存起來,方便讀取,今天我們就來看看如何轉(zhuǎn)換,需要的朋友可以參考下
    2023-08-08

最新評論

连南| 桐庐县| 合水县| 文昌市| 罗甸县| 教育| 金寨县| 沙洋县| 同心县| 大港区| 青河县| 铁岭市| 察哈| 梅河口市| 龙岩市| 抚宁县| 资阳市| 泗水县| 金川县| 龙口市| 新河县| 论坛| 西青区| 吴川市| 丽水市| 江西省| 出国| 新宁县| 万载县| 邯郸市| 禹城市| 马公市| 长丰县| 保山市| 柳林县| 永州市| 鹤峰县| 芜湖县| 始兴县| 绍兴县| 凌云县|