Vizard基础2021-11-11

目录

#常用操作记录

#1.场景

#2.文本显示

#3.动态调节

#4.其他


#常用操作记录

import viz
import vizact
import vizmat
import vizcam
import viztask
import vizshape
import vizproximity

viz.go()

#1.场景

#方格地面
viz.addChild('ground.osgb')#多个场景冲突时,显示最先定义的场景
viz.addChild('ground_gray.osgb')
viz.addChild('ground_grass.osgb')


#2.文本显示

import vizinfo
vizinfo.InfoPanel()#显示三引号'''内的提示信息

text3D = viz.addText3D('3D Text',pos=[0,2.5,6],align=viz.ALIGN_CENTER_BOTTOM)


#3.动态调节

text3D.addAction(vizact.spin(0,1,0,15))#旋转

#相机
viz.MainView.setPosition([-3, 1, 0])
viz.MainView.move([-1, 1, 2])#沿着向量a=[x,y,z]的方向移动|a|米
viz.MainView.setAxisAngle([0, 1, 0, 90])

#视角
#cam = vizcam.FlyNavigate()#鼠标决定方向,键盘wasd或上下左右决定移动,可以任意方向移动
cam = vizcam.WalkNavigate()#效果类似FlyNavigate,区别在于这个不改变相机高度,只能平东
cam = vizcam.KeyboardCamera()#ws前后移动,ad左右偏转
cam = vizcam.PanoramaNavigate()#点击鼠标右键不放开,移动鼠标,可以改变视角方向,但是不能移动


#4.其他

#4.1圆坐标的生成
RADIUS=1
#取随机点
x = random.random() - 0.5
y = random.random() - 0.5
z = random.random() - 0.5
#计算随机点的模
length = math.sqrt(x*x + y*y + z*z)
#将随机点长度归一化再乘以圆的半径
x = x / length * RADIUS
y = y / length * RADIUS
z = z / length * RADIUS

#4.2杆的链接
c0 = viz.addChild('cylinder.wrl')#杆长0.5
c1 = viz.addChild('cylinder.wrl',parent=c0)
j1 = viz.addChild('joint.wrl',parent=c1)#链接节点
c1.setPosition([0, 0.5, 0])
j1.setPosition([0, 0.5, 0])#坐标需要调一下

#4.3函数调用
vizact.ontimer(0,f())

#4.4打开碰撞检测
viz.collision(viz.ON)

#4.5显示网格、坐标系
import vizshape#用于显示网格等
grid = vizshape.addGrid()
grid.color(viz.RED)

world_axes = vizshape.addAxes()

#4.6变换的复制,link
viz.link(viz.MainView, arrow)#arrow获得MainView的位置、方向、变换
 
#4.7为四边形模型设置“无限平面”物理形状
ground=viz.addChild('tut_ground.wrl')
ground.collidePlane()

#设置透明度
sphere.alpha(0.9)#数值越小越透明
 

2021.11.12更新

猜你喜欢

转载自blog.csdn.net/weixin_58465955/article/details/121276848