#素材记录import viz
import vizact
import vizmat
import vizcam
import viztask
import vizshape
import vizproximity#--注意:变量名覆盖,可能出现数据混乱,可以用先remove删除之前的变量试试viz.setMultiSample(4)
viz.fov(60)                             #视角后退
viz.go()                                #在默认情况下,Vizard程序启动后( viz.go()),虚拟视点站在世界坐标系的原点上,身高为1.82米,面部朝向Z轴正方向#1.场景#方格地面
viz.addChild('ground.osgb')               #多个场景冲突时,显示最先定义的场景
viz.addChild('ground_gray.osgb')
viz.addChild('ground_grass.osgb')#课桌,遍历出六张
for x in [-2, 0, 2]:                    #取位置坐标x=-2,x=0,x=2for z in [1, -1]:                    #取位置坐标z=1,z=-1table = viz.addChild('getting started/table.wrl')table.setPosition([x,0,z])       #y轴向上,z垂直屏幕向里,x轴向右table.setEuler([0,0,0])         #设置角度table.setScale([1,1.5,1.5])        #设置大小#门,添加开门效果
mydoor = myroom.getChild('door-FACES')   #获取模型的子物体(myroom是已经导入的模型)
mydoor.runAction( vizact.spinTo(euler=[-90,0,0], speed=5.0) )#绕Y轴(0, 1, 0)逆时针旋转90度,5度每秒。#旋转方向巧记:站上去,自身右侧为正#投影,添加投屏回拉效果
screen = myroom.getChild('screen-FACES')
def screendown():                       #写成函数,可以添加按键控制效果。#由moveTo看出,实际上屏幕是向上移动,而不是向上卷,上边的部分并没有消失,会裸露在模型外部screen.runAction(vizact.moveTo([0,3,0],speed=0.5))
vizact.onkeydown('u', screendown)     #screendown加括号时直接调用函数,按键控制失效#局部视频,在教室的幕布上播放一段视频
def playMovie():mymovie = viz.addVideo('getting started/mona.mpg')screen.texture(mymovie)mymovie.loop(viz.ON)mymovie.play()
vizact.onkeydown('m', playMovie)#灯光,开关控制
import random
def flickerLight():                     #投影仪灯光控制#如何控制收投影时关灯光on = random.choice([0, 1])mylight.visible(on)                  #mylight.visible(1)
vizact.ontimer(0.5,flickerLight)#2.文本显示import vizinfo
vizinfo.InfoPanel()                     #显示三引号'''内的提示信息#当存在'''。。。'''在代码开头,后边却没有vizinfo.InfoPanel(),则场景无法导入   text3D = viz.addText3D('3D Text',pos=[0,2.5,6],align=viz.ALIGN_CENTER_BOTTOM)print "...",speed                       #显示于调试窗口#3.动态调节#固定视角的两种方法
viz.mouse(viz.OFF)
viz.mouse.setScale( 0, 0)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()#点击鼠标右键不放开,移动鼠标,可以改变视角方向,但是不能移动#粒子系统
fire = viz.addChild('fire.osg',pos=[0,1.8,2])
fire.hasparticles()#是火焰燃烧效果,没有爆炸效果,可以打开源文件来调#添加人物角色
avatar = viz.addAvatar('getting started/vcc_male.cfg')
avatar.setPosition([2, 0, 0])#因为相机转了大约180°,所以x=2时看到的是左移2个单位
import math
SPEED = 0.5
def moveAvatar():t = viz.tick() * SPEEDnewX = -math.cos(t) * 2newZ = math.sin(t) * 2avatar.setPosition(newX, 0, newZ)avatar.setAxisAngle(0,1,0, t/math.pi * 180)#调角度
vizact.ontimer(0,moveAvatar)#快捷键
#ctrl+t上下行对换#4.调试
#view--->interactive打开调窗口
print "...",speed             #打印,内容显示于调窗口#5.其他#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())
vizact.onbuttondown( Ball1White, f, 10 )#函数只写函数名
vizact.whilekeydown(viz.KEY_UP,move,avatars_speed)#函数只写函数名#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()#4.8设置透明度
sphere.alpha(0.9)#数值越小越透明#4.9同功能方法名
viz.addChild('...')#add是早期方法名,现在改用addChild
avatar.state(0)#state与idlepose功能相同,当state出现bug时换idlepose试试#交线控制位移边界
info = viz.Scene2.intersect([0,0,0],[0,0,4])
if info.valid:print 'Intersected with object id:', info.object.id print 'Intersected at location: ', info.point#粒子系统----雨、雪等
precip = viz.add('precipitation.dle')
snow = precip.rain(.5)#rain改成snow是下雪,正常参数最大大概2.7

Vizard基础操作相关推荐

  1. 提交表单自动刷新_Web自动化测试:元素的基础操作和浏览器基础操作

    上一节,我们了解了如何定位元素,其实也有涉及对于元素的操作,这一节我们就详细的介绍一下对于元素的操作和对于浏览器的一些操作 一.对于元素的基础操作: clear():清除输入框内的文本 send_ke ...

  2. 【opencv】(1) 基础操作:图像视频读取、图像截取、颜色通道

    主要内容有:图像及视频的读取和保存.图像显示.转换灰度图.图像截取.颜色通道提取和组合 那我们开始吧. 1. 图像操作 首先我们导入opencv库,彩色图像一般都是由RGB(红绿蓝)三颜色通道构成,灰 ...

  3. JavaのFile类基础操作之问题

    在上一章节,介绍了File类的基础操作,比如文件的创建,文件的删除等等.这一章节,将介绍在File类基础操作中遇到的问题. 1.路径分割符问题 在实际的软件开发与运行过程中,往往都会在Windows环 ...

  4. 计算机应用基础统考操作,全国统考计算机应用基础操作题

    全国统考计算机应用基础操作题 (16页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.9 积分 .1.打开考生文件夹下的文件Word6.doc,完成 ...

  5. Docker 之 Docker基础操作

    第1章 Docker基础操作 1.1 常用的命令 0) 安装Docker 环境 yum -y install docker 1)   指定 IP,DNS 网络位启动Docker容器 a)  docke ...

  6. cameraraw面板大小调整_Camera Raw基础操作面板介绍

    大家好,我是摄影师:爱撒谎的猫. 今天我想和大家分享的内容是:Camera Raw基础操作面板介绍. 我们每次将RAW格式的图片文件拖入Photoshop中时,最先出现的都是Camera Raw的基础 ...

  7. MATLAB基础操作--命令窗口

    MATLAB基础操作–命令窗口 常用的赋值运算符-'='对变量进行赋值 x=9-5 x = 4 x-8=9 x-8=9 ↑ 错误: '=' 运算符的使用不正确.要为变量赋值,请使用 '='.要比较值是 ...

  8. 项目实战12.1—企业级监控工具应用实战-zabbix安装与基础操作

    无监控,不运维.好了,废话不多说,下面都是干货. 警告:流量党勿入,图片太多!!! 项目实战系列,总架构图 http://www.cnblogs.com/along21/p/8000812.html ...

  9. java jdbc 教程_java JDBC系列教程之JDBC类的简析与JDBC的基础操作

    什么是JDBC? 概念:JAVA Database Connectivity Javas数据库连接,Java语言操作数据库接口,然后由各个数据库厂商去实现这个接口,提供数据库驱动java包,我们可以使 ...

最新文章

  1. 职责链模式里面必须要知道的事情
  2. 百度正在加速小程序的开放趋势
  3. opwnert挂载摄像头
  4. golang 切片 截取参数 简介
  5. 今天开始学模式识别与机器学习Pattern Recognition and Machine Learning (PRML),章节1.2,Probability Theory (下)
  6. ashx获取客户端excel文件_Spring Boot实现导出Excel功能
  7. ffmpeg to webm
  8. 01.HTML基础命令笔记
  9. BZOJ1453: [Wc]Dface双面棋盘
  10. cc2530i2c可同时接受两个传感器的数据吗_汽车方向及维修_玉树沃尔沃S40方向机,宝马531电子方向机进水可以维修吗...
  11. PHP之post请求php脚本实现
  12. asio 组播包ssdp
  13. 别人的趋势不一定是你的未来
  14. 数据仓库入门(实验6)添加层次结构
  15. Bailian3179 最长单词【字符串】
  16. [Docker Swarm集群+图形化界面Visualizer笔记记录]
  17. Ue4导入视频黑屏原因
  18. 人工智能、大数据和云计算之间,它们之间主要有什么关系?
  19. Docker与微服务实战(入门)
  20. 9. JVM-方法区

热门文章

  1. C语言的转义字符,八进制
  2. 拼多多产品点击低怎么办?
  3. 使用函数调用方式解决:输入三个正整数a,b,n,求a/b精确到小数后第n位。
  4. linux 软件覆盖安装,pacman/yaourt安装软件的时候覆盖了/usr/share的symlink链接的问题...
  5. 在word中doc与docx的区别是什么(整理)
  6. 学习学习学习学习学习学习学习学习学习学习学习
  7. java poi操作word模版 导出word文档(附工具类)
  8. Qgis教程07:矢量数据属性编辑
  9. Python实现旋转按钮控制小风扇
  10. 深富策略:罕见巨额成交量背后蕴含深意