- flash.display.DisplayObject 类包含 z 属性和新的旋转和缩放属性,这些属性用于操作 3D 空间中的显示对象。DisplayObject.local3DToGlobal () 方法提供了一种将 3D 几何图形投影到 2D 平面 的简单方式 。
- // 屏幕坐标系和3D坐标系:
- // 将_sprite的(200, 0, 0)的那个点三维点转换成一个二维点
- var p:Point = _sprite.local3DToGlobal(new Vector3D( 200 , 0 , 0 ));
- // 二维坐标 转换成 三维坐标
- var p:Vector3D = _sprite.globalToLocal3D(new Point(mouseX, mouseY));
- // pointAt 方法接收一个 Vector3D 对象作为指向的目标,这边设成了鼠标光标
- _sprite.transform.matrix3D.pointAt(new Vector3D(mouseX, mouseY, 0 ));
- flash.geom.Vector3D 类可用作管理 3D 点 的数据结构 。该类还支持矢量数学运算。
- flash.geom.Matrix3D 类支持复杂的 3D 几何转换 ,例如旋转、缩放和平移。
- flash.geom.PerspectiveProjection 类控制着将 3D 几何图形映射到 2D 视图 的相关参数 。
在 ActionScript 中,有两种不同的模拟 3D 图像的方式:
- 在 3D 空间 中排列平面对象并进行动画处理 。这种方式需要使用显示对象的 x、y 和 z 属性来对显示对象进行动画处理,或者使用 DisplayObject 类设置旋转和缩放属性。使用DisplayObject.transform.matrix3D 对象可以实现更为复杂的运动 。DisplayObject.transform.perspectiveProjection 对象可自定义显示对象在 3D 透视 中的绘制方式 。如果需要对主要包含平面的 3D 对象进行动画处理,可以使用这种方式。这种方式的例子包括 3D 图库或者 3D 空间中排列的 2D 动画对象。
- 从 3D 几何图形生成 2D 三角形 ,然后用纹理呈现这些三角形。要使用这种方式,必须首先定义和管理有关 3D 对象的数据,然后将这些数据转换成 要呈现的 2D 三角形 。可以将位图纹理映射到这些三角形,然后使用 Graphics.drawTriangles ()方法将三角形绘制为图形对象。这种方式的例子包括从文件中加载 3D 模型数据 并将模型呈现到屏幕上,或以三角形网格形式生成和绘制 3D 图形。
原帖地址:http://www.4ucode.com/Study/Topic/840272