




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
3.在三维空间的对象1)三维对象在Alice中对象是指一个人或物,在本地库中建造的对象都是三维空间中的对象。所谓三维空间就是由长、宽、高三个维度构成的空间,通常是用三个相互垂直方向的轴线构成的坐标系来表示一个三维空间。初始场景就是一个三维空间,当编程时需要知道一个在三维空间的对象在运动时是朝向那个方向运动,它在场景中所在的位置,和另一对象的距离等,这些都需要用三维坐标来表示。构造一个三维模型对象,除了外观模型外,还包括有:是什么颜色,它包含哪些部件,它的尺寸(长、宽、高)以及其他细节。(1)三维六个方向:一个对象是三维的,是指这个对象有高度(height)、宽度(width)和厚度(depth),即上下、左右、前后。另外,对象移动的方向有六个方向,即上下左右前后,其中左右方向是指对象的左右方向, 这六个方向称为对象的方位(orient)(2)对象的中心点: 在场景中的每个对象都有一个中心点(center),当对象移动时就是它的中心点的移动带动整个对象的移动,对象的旋转时就是围着它的中心点旋转。对象的中心点是由设计人员根据需要而确定的,如人的中心点在双脚之间,飞机的中心点在飞机的内部。知道对象中心点的位置是很重要的。对象运动时的方向和距离都是以它的中心点为起始点开始衡量的。 又如被人拿着的对象如棒球棒,其中心点在手握住的地方,当挥动它的时,它才能绕着中心点正常转动。如果对象还有组成部分,则组成部分的子对象也有它自己的中心点,如iceskater的leftLeg中的左下腿lowerLeg,其中心点在膝盖,对象的中心点是它的三条轴线的交点。 (3)距离与位置: 一个对象到另一个对象的距离是它们中心点之间的距离,如站地面上的人与地面距离为零。在场景中地靣的中心点设为场景的中心,对象的位置即对象中心点的位置,在三维空间里,位置是三个坐标表示的,场景中心的坐标为(0,0,0),场景中对象鸟中心点的位置是相对场景中心的坐标(0.53,2.45,0.33),这些坐标可在对象的属性positionOfView中显示出来。 在编制程序的过程中,要编制场景中多个对象的运动,因为场景中的对象是手动方式加入的,并不知对象在场景中的位置(Position)和方位(Orientation),其中方位给出了对象远动的方向,在二维的画面上是很难判断它的方位,具体位置也不准确,而编程又需要知道每个对象在不同时间的位置和方位,以避免在运动中与另一个对象发生碰撞,有时要求一对象和另一对象都朝对方移动,由于每个对象方位不一样,而不能朝对方移动。 在对象树上当点击ground对象时,屏幕上会出现红、兰、绿三条坐标轴,其交点是ground的中心点。若点击iceskater对象时,除出现黄色包围框外也会有三条轴线,红线指向右边,(注意是指iceskater的右边),兰线指向前方,绿线指向上方。参照ground的坐标,加上对象本身的红、兰、绿三条轴线,就会知道iceskater的方位及其位置。总之,在使用对象的方法时,经常会涉及对象的位置和方位,并以它为运动的参考点。(4)四视图:在二维画面上调整场景中对象中的位置是很难的,可以点击对象控制按钮上方的quad view按钮,即由单视图转为三视图,加上面向柤机的主窗口共有四个画面,三视图是从顶部、右边和前方三个方来看对象,同时还增加了二个按钮:重定位及放大按钮。例如雪地里有二个雪人,看起来象排成一行,从三视图看:从顶部看出它们并不在一行(如果看不到可以使用放大按钮),利用白色箭头将它们调整成一排,从顶部看成一排,而从右边看会二雪人重叠。现在进一步要求雪人面对面,只要使用第二个按钮就可使雪人转为面对面。因此在三视图上能看清对象之间的位置关系,以便使用对象操作按钮对它们的位置进行调整。要回到单视图时只要点击single view,调整后的场景如下:2).实例3:Alicee与雏菊(1)Alice六个方向的移动。选择背景glass,并加入对象AliceLiddell和flower,通过copy使场景中有三朵雏菊flower、flower1、flower2,按DONE进入程序编辑界靣。先拖入Do in order,再依次从方法列表中拖入move命令,并分别设置up, down, left, right, forward, and backward六个方向,移动距离均为1 meter(可通过copy move来实现) 。按Play看移动效果。(2)找对象AliceLiddell的中心。在AliceLiddell的方法列表中拖turn至方法编辑区内,选择forward及1 revolution,按Play后她会绕自已的中心转,可以发现她的中心在她的足部。(3)四视图的使用。点击quad view后屏幕出现四视图,如要把雏菊移到与AliceLiddell在同一线上,在四视图是能方便地操作。当找不到某一对象时可在四视图上用Zoom来寻找。(4)当点击对象树上某一支雏菊时,场景中那支雏菊就会出现一个黄色的线框围住它,现在要求AliceLiddell靣向花走去,并且要走到后面两支花之间,再转向面对前面。可以使用turn to face 命令并选择flower及the entire flower,然后使用move forward向前走,再使用turn to face 命令并选择camera 使用Do togather将AliceLiddell和最后一支flower同时move backward时,可能两者向后移动的方向稍为不同,AliceLiddell是直接向后移,为了保证flower也是直接向后移,需要在flower的方法列表中使用orient to,并选择AliceLiddell及the entire AliceLiddell,这就保证两者向后移动的方向是一致的。 编程的结果是按Play后的画靣是实例4:机器人与外星人在月球上相遇 选择space为背景,从本地库中选择SciFi- SpiderRobot parkingMeter(蜘蛛机器人)、 SciFiAlien- OnWheels(带轮子的外星人)及SciFi LunarLander(登月机)到场景中,并把岩石放在外星人前面以挡住它。点击File将要继续编写的的程序命名并存于文件系统中。在完成场景设置后,按Done回到代码编辑屏幕。如果不为建立新的方法命名,Alice会自动地把World.my first method作为方法名。在此方法编辑区内编写代码,因为按Play时,Alice就会运行这个编辑区内的所写的命令行(代码)。(2)首先拖入Do in order至编辑区,表示在它下面的命令行是顺序执行的。点击对象树中allenOnWheels(外星人),在其方法列表中拖move命令至Do in order之下,选择up及1 meter,执行这条命令使外星能从岩石后面露出来,向上移动的距离可以调整。下条命令是要求外星人说slithy toves?,因此要从方法列表中拖say命令至move命令之下,在弹出的菜单中选择other并打入slithy toves?。当机器人看到外星人时,头旋转一圈。为此点击对象树中spiderRobot(机器人)旁边的+,对象树会将spiderRobot的组成部件显示出来,点击其中的head(头部) ,在其方法列表中拖入turn命令,选择left并设置1 revolution,表示向左旋转一圈。最后还要求机器人将脸转向外星人,因此还需将turn to face命令拖至Do in order的最后一行。下面的命令行是机器人行走的动作,并要求这些动作是同时执行的。机器人有多条腿,为简化起见,只设计左右腿(左后腿和右前腿)行走的动作。在机器人的组成部件中,每条腿都是分段的,通过转动某一段就可让这条腿“行走”。或者说是让腿的每段在连接处旋转。因此要求机器人向前移动的同时,要求backLeftLegUpperJoint(左后腿上关节)和 frontRightLegUpperJoint(右前腿上关节)也依顺序转动。这样就要在Do in order下拖入Do togather,再在其下拖入spiderRobot move命令,选择toward及1 meter,即机器人向前移动1米。接着点击对象树中backLeftLeg Base的部件backLeftLegUpper Joint,将其方法turn拖move命令之后,并选择toward及0.1 meter,经多次试验旋转0.1是才使关节弯曲到合适位置。一条腿在向一个方向弯曲之后总是要再回到原位置,因此将这条命令copy到下面,并将toward改为backward。显然这两条命令应顺序执行,所以在这两条命令前拖入Do in order,这样左腿向前迈了一步。用类似的操作步骤,加入使右腿迈步的命令。下面的代码就是机器人向前走一步的程序。因为机器人向前行走命令的执行时间约的1秒,就要求左右腿迈步的时间也为1秒,左右腿迈步各有向前及向后两条命令,因此向前及向后命令的执行时间各为0.5秒,点击它们命令行中的more,设duration为0.5 seconds。 下面的动作要求是:外星人向下移动,机器人把头转向相机,机器人的头变成红色,机器人说 “Houston,we have a problem!”,共有四个动作。先复制allenOnWheels的move up的命令行,将up改为down,再把spiderRobot的turn to fac
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 离婚协议书补充:子女抚养费及赡养费调整协议
- 美容师考试题及答案
- 个人车辆租用合同3篇
- 景观式卫生间翻新装修与户外设施配套合同
- 研发成果转化租赁意向金合同模板(含专利权)
- 离婚协议书及财产分配执行监督协议
- 房地产私人贷款合同模板:按揭购房及还款责任协议
- 网络安全私人合伙股权分配与信息安全保障协议
- 城市综合体物业管理团队劳动合同与节能减排目标协议
- 教育机构线上招生平台建设与运营策略规划报告2025年展望
- 副主任护师职称述职报告
- 《电机原理与应用》课件
- DB4403-T 56-2020 住宅小区电动汽车充电设施安全管理规范
- 展会安全风险评估报告
- 《学前教育法》知识考试题库100题(含答案)
- 专题十一-新航路到工业革命
- 桩基检测施工方案
- 刑法学课程课件教案绪论
- 配电室改造施工方案
- 尿酸高患者的日常护理
- 人教部编版一年级语文上册识字1《天地人》精美课件
评论
0/150
提交评论