用于教学和研究的3D建模库VPython的研究(一)

    VPython是近几年非常流行的Python扩展库,被广泛应用在科学研究和中学教学中.它是一个非常方便的3D建模工具.

    请先看一个简单的例子:

from visual import *

floor = box(length=4, height=0.5, width=4, color=color.blue) #创建地平面

ball = sphere(pos=(0,4,0), color=color.red)                  #创建一个球
ball.velocity = vector(0,-1,0)                               #设置球的速度向量

dt = 0.01   
while 1:  #无限循环
    rate(100) #刷新时间间隔,值越大时延越短
    ball.pos = ball.pos + ball.velocity*dt  #每次球的位置S = S0 + V*dt,标准直线运动的微分形式
    if ball.y < 1:                          #球的高度小于1时,认为已经碰到地面,则反向运动,模拟了一个反弹的动作
        ball.velocity.y = -ball.velocity.y
    else:
        ball.velocity.y = ball.velocity.y - 9.8*dt  #否则,继续做匀加速直线运动(自由落体,幅度向下为负)

     上面是一个相当简单的程序,却精确地模拟了自由落体运动的全过程,甚至包括反弹.

     下面是程序的运行效果:

     用于教学和研究的3D建模库VPython的研究(一)_第1张图片

    先来看一下VPython的坐标系问题:

    

    坐标系如图所示,箭头方向表示正向,+z方向是朝向我们的.其坐标原点为(0,0,0).在默认情况下,坐标是自适应的,系统会自动把物体居中并缩放到合适的大小.

    其次,如果操作视图的问题. 按下鼠标右键并移动可以转动视角,同时按下鼠标左右键并移动则可以缩放视图.使用起来非常方便.
    之后, 结合一下python的语法和面向对象的知识,就可以开始建模了!

    下面这个模型是Kadir Haldenbilen老兄建立的直流电机模型,相当有意思,他把直流永磁电机的每一个部件都绘制的惟妙惟肖,让人赞叹不已. 先上一个动画吧:

    

    这个模型的建立依赖于VisualPython5.50版本以后推出的extrusion()函数和shape对象,可以通过shape建立平面模型,然后把这个平面通过旋转成为一个立体.

具体细节,请参考安装后的C:\Python2X\Lib\site-packages\visual\examples\下的相应源代码.关于VPython请参考http://vpython.org.

    

    

你可能感兴趣的:(用于教学和研究的3D建模库VPython的研究(一))