PythonOCC 3D圖形庫學習—創建立方體模型

Open CASCADE(簡稱OCC)平臺是是一個開源的C++類庫,OCC主要用于開發二維和三維幾何建模應用程序,包括通用的或專業的計算機輔助設計CAD系統、制造或分析領域的應用程序、仿真應用程序或圖形演示工具。

PythonOCC是對Open CASCADE的封裝。PythonOCC按照官方描述:3D CAD/CAE/PLM DEVELOPMENT FRAMEWORK FOR THE PYTHON PROGRAMMING LANGUAGE. 即用于開發CAD/CAE/CAM程序的一個Python框架。PythonOCC的下載地址為:http://www.pythonocc.org/download/

學習一個框架先從最簡單的"Hello world"程序開始,下面用PythonOCC創建一個最簡單的立方體并顯示出來。

 1 '''
 2 This examples creates and displays a simple box.
 3 '''
 4 
 5 # The first line loads the init_display function, necessary to
 6 # enable the builtin simple gui provided with pythonocc
 7 from OCC.Display.SimpleGui import init_display
 8 
 9 # Then we import the class that instanciates a box
10 # Here the BRepPrimAPI module means Boundary Representation Primitive API.
11 # It provides an API for creation of basic geometries like spheres,cones etc
12 from OCC.BRepPrimAPI import BRepPrimAPI_MakeBox
13 
14 # Following line initializes the display
15 # By default, the init_display function looks for a Qt based Gui (PyQt, PySide)
16 display, start_display, add_menu, add_function_to_menu = init_display()
17 
18 # The BRepPrimAPI_MakeBox class is initialized with the 3 parameters of the box: widht, height, depth
19 my_box = BRepPrimAPI_MakeBox(10., 20., 30.).Shape()
20 
21 # Then the box shape is sent to the renderer
22 display.DisplayShape(my_box, update=True)
23 
24 # At last, we enter the gui mainloop
25 start_display()

顯示結果如下,按鍵盤上的W,S,H鍵可以在線框模型,面模型和消隱線模型之間切換。按住左鍵移動鼠標可以旋轉物體,鼠標中鍵用于縮放,按住鼠標中鍵可以平移物體

參考:

http://www.pythonocc.org/

http://www.vrplumber.com/py3d.py

https://github.com/tpaviot/pythonocc-core/blob/5b7ac9167e50e302cea534c5c7777ca2432f6d09/doc/examples/helloworld.rst

轉載于:https://www.cnblogs.com/21207-iHome/p/5241151.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/458262.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/458262.shtml
英文地址,請注明出處:http://en.pswp.cn/news/458262.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Struts2、SpringMVC、Servlet(Jsp)性能對比 測試 。 Servlet的性能應該是最好的,可以做為參考基準,其它測試都要向它看齊,參照...

2019獨角獸企業重金招聘Python工程師標準>>> Struts2、SpringMVC、Servlet(Jsp)性能對比 測試 。 Servlet的性能應該是最好的,可以做為參考基準,其它測試都要向它看齊,參照它。 做為一個程序員,對于各個框架的性能要有…

深度相機(三)--三種方案對比

from:https://blog.csdn.net/app_12062011/article/details/52511701RGBD方案對比:關鍵技術規格: 1.檢測范圍; 2.檢測精度; 3.檢測角度; 4.幀率。 5.模塊大小 6.功耗 目前主流的深度攝像頭方案在檢測距離上…

Activity隱式啟動IntentFilter

時間:2016年3月4日09:54:02IntentFilter過濾信息:action、category、dataaction:1.Intent中的action必須能夠和過濾條件中的action匹配,過濾條件中可以有多個action。2.Intent中如果設置多個action則過濾條件中必須至少有同樣數量…

基于圖像分割的立體匹配方法

1.緒論 立體匹配是三維重建系統的關鍵步驟,并且作為一種非接觸測量方法在工業以及科研領域具有重要的應用價值。為了完成匹配工作以及獲取場景的稠密視差圖,可以通過構建能量函數對應立體匹配的約束條件。復雜能量函數的全局最優解通常是NP難問題。相對于…

深度相機之TOF原理詳解

/*******************************************************************************************************************本文轉載源鏈接沒有找到,若有幸被原創作者訪問到,請留下原出處,我會更新,謝謝,轉載至我的博…

nodejs npm常用命令

npm是一個node包管理和分發工具,已經成為了非官方的發布node模塊(包)的標準。有了npm,可以很快的找到特定服務要使用的包,進行下載、安裝以及管理已經安裝的包。 1、npm install moduleNames:安裝Node模塊安…

centos 7 /etc/rc.local 開機不執行的問題

最近發現centos7 的/etc/rc.local不會開機執行,于是認真看了下/etc/rc.local文件內容的就發現了問題的原因了 1234567891011#!/bin/bash# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES## It is highly advisable to create own systemd services or udev rules# …

深度相機(二)--結構光深度測距

原文: http://blog.sina.com.cn/s/blog_80ce3a550100wg5j.html http://blog.csdn.net/u013360881/article/details/51395427 網上資源:http://eia.udg.es/~qsalvi/recerca.html 結構光編碼: 在3D 的深度獲取上,最為常見的方法是類…

幾種特別的顏色參數

switch (buttonIndex) { case 0: aColor [UIColor redColor]; bColor [UIColor colorWithRed:0.97 green:0.68 blue:0.75 alpha:1.0];// 鴇色 break; case 1: aColor [UIColor orangeColor]; bColor [UIColor colorWithRed:1.0 green:0.87 blue:0.72 alpha:1.0];// 肌色 br…

linux 程序包管理5 編譯安裝

1.二進制程序的訪問方法vim /etc/profile.d/apache.shPATH/usr/local/apache/bin:/usr/local/apache/sbin$PATHexport PATH2.頭文件輸出給系統ln -sv /sur/local/apache/include /usr/include/httpd3.庫文件輸出vim /etc/ld.so.conf.d/httpd.conf/usr/local/apache/binldconfig…

用python實現模擬登錄人人網

用python實現模擬登錄人人網 字數4068 閱讀1762 評論19 喜歡46我決定從頭說起。懂的人可以快速略過前面理論看最后幾張圖。 web基礎知識 從OSI參考模型(從低到高:物理層,數據鏈路層,網絡層,傳輸層,會話層&a…

雙目相機--雙目視差與深度距離關系推導詳解

相機成像的模型如下圖所示: P為空間中的點,P1和P2是點P在左右像平面上的成像點,f是焦距,OR和OT是左右相機的光心。由下圖可見左右兩個相機的光軸是平行的。XR和XT是兩個成像點在左右兩個像面上距離圖像左邊緣的距離。 -----------…

SQL Server有這些屬性嗎

2019獨角獸企業重金招聘Python工程師標準>>> Navicat for SQL Server是一個全面的圖形化方式管理數據庫,可進行創建、編輯和刪除全部數據庫對象,例如表、視圖、函數、索引和觸發器,或運行SQL查詢和腳本,查看或編輯BLOB…

Android中常見功能包描述

在Android中,各種包寫成android.*的方式,重要包的描述如下所示:android.app :提供高層的程序模型、提供基本的運行環境android.content:包含各種的對設備上的數據進行訪問和發布的類android.database :通過…

【立體視覺】雙目立體標定與立體校正

from:https://blog.csdn.net/u011574296/article/details/73826420 參考: 機器視覺學習筆記(6)——雙目攝像機標定參數說明 機器視覺學習筆記(8)——基于OpenCV的Bouguet立體校正 雙攝像頭立體成像(三)-畸變…

bootstrap .col-md-6 文字居中問題處理

轉載于:https://www.cnblogs.com/benbenfishfish/p/5672520.html

使用jd-gui+javassist修改已編譯好的class文件

1.原因:因為公司代碼管理不當導致源碼丟失,只好已編譯好的class文件進行修改 2.首先先在myeclipse中新建java項目并導入javassist 3.將需要修改的文件放到指定文件夾下 4..在項目中添加以下代碼 package dtj;import javassist.ClassPool; import javassi…

機器視覺學習筆記(4)——單目攝像機標定參數說明

from:https://blog.csdn.net/xuelabizp/article/details/50314633機器視覺學習筆記(4)——單目攝像機標定參數說明 標簽: 機器視覺1.針孔攝像機模型 在介紹攝像機標定參數之前,需要先簡單說一下針孔攝像機的原理。投影…

mysql 5.6 binlog組提交

mysql 5.6 binlog組提交實現原理http://blog.itpub.net/15480802/viewspace-1411356 Redo組提交 Redo提交流程大致如下 lock log->mutex write redo log buffer to disk unlock log->mutex fsync Fsync寫磁盤耗時較長且不占用log->mutex,也就是其執行期間其…

python基礎(正則表達式)

http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html 轉載于:https://www.cnblogs.com/wanderingzj/p/5253325.html