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!"