vpython初探


vpython 是python默認的3D模塊,和python有一樣的風格。與PyOpenGL相比,容易上手。

vpython下載:vpython的官網(www.vpython.org)。順便說一句,官網強大的模塊,一般都強大。

安裝好了之后,可以在C:\Python27\Lib\site-packages\visual(視python的安裝目錄而定)中的doc,examples里查看一些文檔和例子。

第一個vpython程序

from visual import *
sphere()

 這里要注意,導與vpython模塊,不是import vpython,而是import visual。

sphere函數創建一個球,然后就沒然后了,連窗體都不用構建,vpython自動幫你生成,當然自己也可設置。

sphere函數的參數有pos(球心的坐標位置)、color(顏色)、radius(半徑)、material(材質)等。

類似的我們可以創建其他的一些幾何體,如下表

arrow 箭頭
box 長方體 
cone 圓錐
convex 凸面體(由點決定)
curve 曲線
cylinder 圓柱
ellipsoid 橢球體
faces 多面體(由面決定)
helix 螺旋線
label 標簽
points
pyramid 正四棱錐
ring
text 文字(3d效果)

 

更多可以在http://www.vpython.org/contents/docs_vp5/visual/index.html中查閱,這里啥都有。

當然對與類似於圓錐來說,還有一個參數axis決定圓錐的指向,當然這個參數也可以決定圓錐的高。

此外,對於參數materials,它的值可以是

materials.wood
materials.rough
materials.marble
materials.plastic
materials.earth
materials.diffuse
materials.emissive (looks like it glows)
materials.unshaded (unaffected by lighting)

在 VPython 5.50中還有

materials.shiny
materials.chrome
materials.blazed
materials.silver
materials.BlueMarbe (earth with clouds)
materials.bricks

————————————————————————————————————————————

gameobjects 的下載地址:https://code.google.com/p/gameobjects/downloads/list

————————————————————————————————————————————

vpython中運動

vpython中的坐標系:

from visual import *
a=sphere()
a.pos.x+=10

直接改變幾何體的pos參數,就可實現幾何體的平移。若想實現動畫

from visual import *
a=sphere()
while True:
    rate(100)
    a.pos.x+=0.1

這里的rate(100)是設置動畫每秒的幀數為100,即延時0.01秒。

除了平移,我們還能用rotate函數實現旋轉

from visual import *
a=box(length=5,width=3,height=1)
while True:
    rate(100)
    a.rotate(axis=(1,0,0),angle=math.pi/400,origin=(0,0,0))

rotate函數中的參數axis確定旋轉的方向,其值為旋轉面的法向量,angle是轉動的角度,而origin則是旋轉的圓心。需要說明的是,旋轉是幾何體的中心對圓心旋轉。如果設置origin=a.pos,則是幾何體a繞自己的中心旋轉;如果設置origin的值為幾何體的邊緣,則是幾何體a繞該邊緣旋轉。

能夠實現平移和旋轉,我們可以利用以前物理中學過的運動的合成與分解,實現幾何體的很多運動了。

 先寫到這吧。

print "Good luck!"
Good luck!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM