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

Python 繪制酷炫的三維圖步驟詳解

 更新時間:2019年07月12日 15:38:00   作者:wade1900  
本文分步驟給大家介紹了Python 繪制如此酷炫的三維圖效果 ,需要的朋友可以參考下

通常我們用 Python 繪制的都是二維平面圖,但有時也需要繪制三維場景圖,比如像下面這樣的:

這些圖怎么做出來呢?今天就來分享下如何一步步繪制出三維矢量(SVG)圖。

八面體

我們先以下面這個八面體為例。

1 安裝相關包

首先安裝兩個必備包:

import pyrr # NumPy 的 3D 函數(shù)庫
import svgwrite # svg圖形處理庫

2 定義 3D 圖生成環(huán)境

接下來定義幾個類設置好 3 維圖基礎環(huán)境:

viewport :矩形圖范圍

camera:包括視圖矩陣和投影矩陣

mesh:svg 矢量圖所需的網(wǎng)格表面矩陣、著色器和樣式字典

3 生成八面體數(shù)據(jù)

然后生成八面體每個定點的數(shù)據(jù):

def octahedron():
  """Construct an eight-sided polyhedron"""
  f = sqrt(2.0) / 2.0
  verts = numpy.float32([ ( 0, -1, 0), (-f, 0, f), ( f, 0, f), ( f, 0, -f), (-f, 0, -f), ( 0, 1, 0) ])
  triangles = numpy.int32([ (0, 2, 1), (0, 3, 2), (0, 4, 3), (0, 1, 4), (5, 1, 2), (5, 2, 3), (5, 3, 4), (5, 4, 1) ])
  return verts[triangles]

4 pyrr 包渲染

接下來利用 pyrr 3維庫渲染上面的原始數(shù)據(jù),最后生成 svg 矢量圖。

5 生成 svg

上面最后一步生成 svg 圖形,需要調(diào)用下面的 Engine 函數(shù),略微有些復雜:

以上代碼全部封裝到類中調(diào)用,就可以生成八面體圖形。

除了八面體還可以生成很多其他圖形。

球體和 Klein 瓶

代碼如下:

多面球體

代碼如下:

發(fā)光的球體

代碼實現(xiàn):

還可以繪制這種曲面體

代碼實現(xiàn)如下:

總結

以上所述是小編給大家介紹的Python 繪制酷炫的三維圖,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關文章

  • Django之Mode的外鍵自關聯(lián)和引用未定義的Model方法

    Django之Mode的外鍵自關聯(lián)和引用未定義的Model方法

    今天小編就為大家分享一篇Django之Mode的外鍵自關聯(lián)和引用未定義的Model方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • 用Python實現(xiàn)2024年春晚劉謙魔術

    用Python實現(xiàn)2024年春晚劉謙魔術

    昨晚春晚上劉謙的兩個魔術表演都非常精彩,忍不住用編程去模擬一下這個過程,所以本文給大家用Python實現(xiàn)2024年春晚劉謙魔術,文中通過代碼示例給大家介紹的非常詳細,需要的朋友可以參考下
    2024-02-02
  • 詳解Python如何檢查一個數(shù)字是否為科技數(shù)

    詳解Python如何檢查一個數(shù)字是否為科技數(shù)

    科技數(shù)(Tech?Number)是一種在數(shù)學上具有一定特殊性質(zhì)的數(shù)字,這篇文章主要為大家詳細介紹了如何使用Python檢查一個數(shù)字是否為科技數(shù),感興趣的可以了解下
    2024-03-03
  • python返回數(shù)組索引的方法實現(xiàn)

    python返回數(shù)組索引的方法實現(xiàn)

    本文介紹了三種在Python中返回數(shù)組索引的方法,主要包括index()方法,enumerate()方法及使用numpy庫的argwhere()函數(shù),具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • python編程學習使用管道Pipe編寫優(yōu)化代碼

    python編程學習使用管道Pipe編寫優(yōu)化代碼

    大家好,今天這篇文章我將詳細講解 Pipe 如何讓你的代碼更加簡潔的方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-11-11
  • Python判斷字符串是否為空和null方法實例

    Python判斷字符串是否為空和null方法實例

    這篇文章主要介紹了Python判斷字符串是否為空和null,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • 實現(xiàn)Python圖形界面框架TkInter寫GUI界面應用簡介過程操作

    實現(xiàn)Python圖形界面框架TkInter寫GUI界面應用簡介過程操作

    TkInter是Python用于開發(fā)GUI界面的標準庫,如果你想快速開發(fā)一個帶有GUI界面的小工具(笑小程序),且又能同時在Linux、Windows、Mac上使用,TkInter天生支持跨平臺,天生具備穩(wěn)定性,我認為它能滿足內(nèi)部工具的簡單需求
    2021-09-09
  • Python實現(xiàn)獲取照片拍攝日期并重命名的方法

    Python實現(xiàn)獲取照片拍攝日期并重命名的方法

    這篇文章主要介紹了Python實現(xiàn)獲取照片拍攝日期并重命名的方法,涉及Python針對文件屬性及文件名相關操作技巧,需要的朋友可以參考下
    2017-09-09
  • Python解包中*和**的最全用法

    Python解包中*和**的最全用法

    本文主要介紹了Python解包中*和**的最全用法,它們具有多種用途,包括解包參數(shù)、擴展序列、字典和集合操作等,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • python對離散變量的one-hot編碼方法

    python對離散變量的one-hot編碼方法

    今天小編就為大家分享一篇python對離散變量的one-hot編碼方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07

最新評論

汕尾市| 陵川县| 南昌县| 本溪| 威海市| 金川县| 吉木乃县| 乌兰察布市| 兴化市| 光山县| 麻城市| 夹江县| 阿城市| 乌兰察布市| 竹溪县| 会东县| 体育| 定日县| 洞口县| 石台县| 平湖市| 新闻| 高安市| 秦皇岛市| 肥东县| 山阳县| 双牌县| 姚安县| 肥西县| 灯塔市| 陆河县| 凤台县| 南阳市| 万年县| 蒙阴县| 织金县| 庆城县| 龙泉市| 佳木斯市| 深州市| 泗洪县|