PYTHON程式語言的學習-9

在這個講次當中我們學習如何使用VPYTHON模組。


VPYTHON物件


display, arrow, box, sphere, ring, cylinder, helix 共7個。每一個物件都有自己的參數,同學可以從觀察程式與視窗中的物件樣式得知。
  1. display:開啟一個動畫播放的視窗, 視窗的寬(width)和高(height),中心點的座標(center),背景顏色(background),視窗的觀看方向(forward)
  2. arrow:箭頭,箭頭的位置(pos),軸向(axis),箭頭的大小(shaftwidth)和顏色(color)
  3. box:盒子,盒子的中心點位置(pos),盒子的長寬高(size),盒子的顏色(color),盒子的透明度(opacity)
  4. sphere:球,球的球心位置(pos),半徑(radius),顏色(color)
  5. ring:圓環,圓環的環心位置(pos),圓環的半徑(radius),圓環的寬度(width)
  6. cylinder:圓柱體,圓柱體的底面圓心座標(pos),圓柱體的半徑(radius),圓柱體的軸心向量(axis)
  7. helix:螺旋線,螺旋線的底端座標(pos),螺旋軸向量(axis),螺旋的半徑(radius),螺旋線的寬度(width)


VPYTHON物件影片連結



# coding=Big5
'''
display:開啟一個動畫播放的視窗, 視窗的寬(width)和高(height),中心點的座標(center),背景顏色(background),視窗的觀看方向(forward)
arrow:箭頭,箭頭的位置(pos),軸向(axis),箭頭的大小(shaftwidth)和顏色(color)
box:盒子,盒子的中心點位置(pos),盒子的長寬高(size),盒子的顏色(color),盒子的透明度(opacity)
sphere:球,球的球心位置(pos),半徑(radius),顏色(color)
ring:圓環,圓環的環心位置(pos),圓環的半徑(radius),圓環的寬度(width)
cylinder:圓柱體,圓柱體的底面圓心座標(pos),圓柱體的半徑(radius),圓柱體的軸心向量(axis)
helix:螺旋線,螺旋線的底端座標(pos),螺旋軸向量(axis),螺旋的半徑(radius),螺旋線的寬度(width)
'''
from visual import *
scene = display(width=800, height=800,center=(1, 1, 0),
                background=(0.5,0.5,0), forward=(-0.2,-0.2,-1))
Xaxis=arrow(pos=(0,0,0), axis=(6,0,0), shaftwidth=0.05, color=(1,0,0))
Yaxis=arrow(pos=(0,0,0), axis=(0,6,0), shaftwidth=0.03, color=(0,1,0))
Zaxis=arrow(pos=(0,0,0), axis=(0,0,6), shaftwidth=0.02, color=(0,0,1))
box1=box(pos=(0,0,0),size=(3,3,3), color=color.cyan, opacity=0.2)
ball1 = sphere(pos=(3,2,1), radius = 0.5, color=color.yellow)
ball2 = sphere(pos=(0,1,0), radius = 0.2, color=color.red)
ring1=ring(pos=(4,0,0), radius=1, width=0.1)
gun=cylinder(radius=0.5,pos=(0,0,2),axis=(0,0,2), color=color.blue)
spring1 = helix(pos=(0,0,0), axis=(0,3,0), color=color.black,
                radius=0.5, thickness=0.05)





在立方體的頂角上放置一個球


在下面的程式中我們將學習如何確定的立方體的頂角座標,並且在那個座標放上一個紅色的球。

在立方體的頂角上放置一個球



# coding=Big5
from visual import *
scene = display(width=800, height=800,center=(1, 1, 0),
                background=(0.5,0.5,0), forward=(-0.2,-0.2,-1))
L=4; Lx=6
Xaxis=arrow(pos=(0,0,0), axis=(Lx,0,0), shaftwidth=0.05, color=(1,0,0))
Yaxis=arrow(pos=(0,0,0), axis=(0,Lx,0), shaftwidth=0.03, color=(0,1,0))
Zaxis=arrow(pos=(0,0,0), axis=(0,0,Lx), shaftwidth=0.02, color=(0,0,1))
box1=box(pos=(L/2.,L/2.,L/2.),size=(L,L,L), color=color.cyan, opacity=0.2)
balls=[sphere(radius=0.2,color=color.red) for i in range(8)]
r=[[0,0,0],[1,0,0],[0,1,0],[1,1,0],[0,0,1],[1,0,1],[0,1,1],[1,1,1]]
balls[0].pos=r[0]
for i in range(8):
    #三個整數元素的列表轉換成為一個向量變數vector(r[i])
    balls[i].pos=vector(r[i])*L  #r[i]*L是不合法的操作,必須使用vector
    print i,r[i],balls[i].pos  #r[i]=list, balls[i].pos=vector