第三章建立移动对象.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章建立移动对象

第三章 移动对象 场景中的3D对象能够用多种方法制成动画片。在第二章 建立并显示原始3D模型中,我们已接触过有关这方面的课题,在那里原始模型3D对象是用PrimitivesDemo应用程序建立的,通过修改它们的rotationX,rotationY和rotationZ属性。旋转、移动、缩放、或者旋转3D对象,又被称为转换Transforming 3D对象。这一章将详细的探讨如何转换在场景中的3D对象。 这一章含盖一下主题: 不同的坐标系统 通过修改3D对象位置,旋转和移动,转换3D对象 使用TweenLite 缓动库,转换3D对象 嵌套3D对象 3-1 世界坐标,父坐标,和本地坐标 在第一章 搭建第一个Away3D应用程序中,我们已见到过使用X,Y,和Z坐标系统,以及这些3D对象是如何定位于场景里的。在Away3D里,坐标系统,能够从三个不同的参考原点,分别定义为:世界坐标系统,父坐标系统,和本地坐标系统。弄明白它们间的区别是很重要的,因为在Away3D工作中,所有的移动,旋转和缩放操作,都是分别相对于这三个坐标系统中的一个进行的。 3-1-1 世界空间 世界坐标系统代表朝向相对于场景原点的点或向量的坐标系统,该坐标系统也被称为世界空间。下面这个图例展示的球,取自第一章 搭建第一个Away3D应用程序 中例子。 下面是建立这个球的代码: var sphere:Sphere=new Sphere( { x: 0, y: 0. z: 500 } ); 提供给球Sphere类结构函数的初始化对象,把球设置在(0,0,500)的初始位置,这个位置是相对于3D对象的父容器的位置,在这样的情况下,球添加到场景里作为其子容器。 scene.addChild(sphere); 因为,球添加到场景里作为其子容器,所以球的位置是相对于场景的。这就表示在世界空间里球的位置是(0,0,500)。 3-1-2 父空间 父坐标系统parent coordinate system用于代表点或向量朝向相对于某一3D对象定位于父容器里的位置。这个坐标系统被称为父空间。 注意到上一节中,通过X,Y,和Z的属性,分配给3D对象的位置是相对于它的父容器的位置。当3D对象的父容器是场景Scene3D(这点,正如在这里例子的情形)的时候,父空间和世界空间是相同的。然而,场景Scene3D并不是保存3D对象作为其儿子的唯一容器。Sence3D类继承了ObjectContainer3D类,ObjectContainer3D类定义了函数addChild(),我们曾经使用addChild()函数把3D对象添加到场景Scene3D里。这样就像Scene3D作为3D对象的容器一样,我们也可使用ObjectContainer3D作为3D对象的容器。 让我们建立一个叫GroupingExample的新应用程序,它继承了第一章 搭建第一个Away3D应用程序 中的Away3DTemplate类。 package { 要引入ObjectContainer3D类,以便在程序中是有效的。 import away3d.containers.ObjectContainer3D ; Import away3d.primitives.Sphere; public class GroupingExample extends Away3DTemplate { public function GroupingExample() { super(); } 下面的代码,我们重载了初始场景函数 initSene(),建立一个ObjectContainer3D对象,使它的位置是(0,0,500),并把它添加场景里作为场景的儿子。这个容器是不可见的,即使把它加到场景里,该容器仍将是不可见的。 protected override function initScene():void { super.initScene(); var container:ObjectContainer3D=new ObjectContainer3D( { x: 0, y: 0, z: 500 }

文档评论(0)

haihang2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档