博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vpython初探
阅读量:6813 次
发布时间:2019-06-26

本文共 1880 字,大约阅读时间需要 6 分钟。

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!

转载于:https://www.cnblogs.com/super-zhang-828/p/4790659.html

你可能感兴趣的文章
mysql 创建日期列之timestamp
查看>>
VMM系列之使用VMM服务器构建 Hyper-V主机(4)
查看>>
详测 Generics Collections TList (7): Items、Contains
查看>>
配置FTP服务器(2) 本地用户下载和上传
查看>>
多线程编程(11) - 多线程同步之 Mutex (互斥对象)[续]
查看>>
【Java每日一题】20161214
查看>>
requireJs 模块化简陋版本
查看>>
我的友情链接
查看>>
How to upgrade vim to version 8 on CentOS 7
查看>>
xcode pod 报import 找不到 pods的支持问题解决方法之一
查看>>
nginx配置让任何文件在浏览器中显示文本text/plain
查看>>
思科路由器×××配置-- 动态 site-to-site ×××(上)
查看>>
Visual Studio统计有效代码行数
查看>>
Qt连接Oracle数据库常见问题
查看>>
45个实用的JavaScript技巧、窍门和最佳实践
查看>>
sqlserver 2005 列字符串拼接
查看>>
TSharding源码阅读-MapperShardingInitializer
查看>>
XWifiMouse早期写的一个Android鼠标App
查看>>
postgres预写式日志的内核实现详解-wal记录写入
查看>>
用面向接口编程思想看找对象
查看>>