成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Python如何繪制三維圖

這篇文章主要介紹了Python如何繪制三維圖,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于網(wǎng)站制作、成都網(wǎng)站設計、華陰網(wǎng)絡推廣、微信平臺小程序開發(fā)、華陰網(wǎng)絡營銷、華陰企業(yè)策劃、華陰品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學生創(chuàng)業(yè)者提供華陰建站搭建服務,24小時服務熱線:18982081108,官方網(wǎng)址:jinyejixie.com

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

Python如何繪制三維圖  

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

 

八面體

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

Python如何繪制三維圖  
 

1 安裝相關包

首先安裝兩個必備包:

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

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

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

Python如何繪制三維圖  

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 矢量圖。

Python如何繪制三維圖  
 

5 生成 svg

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

Python如何繪制三維圖  

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

Python如何繪制三維圖

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

 

球體和 Klein 瓶

Python如何繪制三維圖  

代碼如下:

Python如何繪制三維圖  
 

多面球體

Python如何繪制三維圖  

代碼如下:

Python如何繪制三維圖  
 

發(fā)光的球體

Python如何繪制三維圖  

代碼實現(xiàn):

Python如何繪制三維圖  
 

還可以繪制這種曲面體

Python如何繪制三維圖  

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

Python如何繪制三維圖  

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Python如何繪制三維圖”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關知識等著你來學習!

網(wǎng)站標題:Python如何繪制三維圖
本文來源:http://jinyejixie.com/article12/jpojgc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供、營銷型網(wǎng)站建設、關鍵詞優(yōu)化、全網(wǎng)營銷推廣網(wǎng)站維護、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設
汾阳市| 榆社县| 利辛县| 西乌珠穆沁旗| 宽甸| 循化| 雷波县| 长岭县| 新密市| 镇康县| 江城| 九台市| 柳林县| 江城| 济阳县| 东宁县| 喀喇| 会昌县| 青浦区| 从化市| 东乌珠穆沁旗| 清苑县| 民乐县| 博兴县| 金沙县| 板桥市| 濮阳县| 岐山县| 秦安县| 灵武市| 盱眙县| 清流县| 新泰市| 新安县| 开封市| 沭阳县| 兴安盟| 洛川县| 金堂县| 平阳县| 淮安市|