actionscript flex 中三维坐标和屏幕(二维)坐标的转换

  1. flash.display.DisplayObject  类包含 z 属性和新的旋转和缩放属性,这些属性用于操作 3D 空间中的显示对象。DisplayObject.local3DToGlobal  () 方法提供了一种将 3D 几何图形投影到 2D 平面  的简单方式  。   
    Java代码  收藏代码
    1. // 屏幕坐标系和3D坐标系:   
    2.   
    3. // 将_sprite的(200, 0, 0)的那个点三维点转换成一个二维点   
    4. var p:Point = _sprite.local3DToGlobal(new  Vector3D( 200 0 0 ));  
    5.   
    6. // 二维坐标 转换成 三维坐标   
    7. var p:Vector3D = _sprite.globalToLocal3D(new  Point(mouseX, mouseY));  
    8.   
    9. // pointAt 方法接收一个 Vector3D 对象作为指向的目标,这边设成了鼠标光标   
    10. _sprite.transform.matrix3D.pointAt(new  Vector3D(mouseX, mouseY,  0 ));  
     
  2. flash.geom.Vector3D  类可用作管理 3D 点  的数据结构  。该类还支持矢量数学运算。
  3. flash.geom.Matrix3D  类支持复杂的 3D 几何转换  ,例如旋转、缩放和平移。
  4. flash.geom.PerspectiveProjection  类控制着将 3D 几何图形映射到 2D 视图  的相关参数  。

在 ActionScript 中,有两种不同的模拟 3D 图像的方式:


  1. 在 3D 空间  中排列平面对象并进行动画处理  。这种方式需要使用显示对象的 x、y 和 z 属性来对显示对象进行动画处理,或者使用 DisplayObject 类设置旋转和缩放属性。使用DisplayObject.transform.matrix3D  对象可以实现更为复杂的运动  。DisplayObject.transform.perspectiveProjection  对象可自定义显示对象在 3D 透视  中的绘制方式  。如果需要对主要包含平面的 3D 对象进行动画处理,可以使用这种方式。这种方式的例子包括 3D 图库或者 3D 空间中排列的 2D 动画对象。
  2. 从 3D 几何图形生成 2D 三角形  ,然后用纹理呈现这些三角形。要使用这种方式,必须首先定义和管理有关 3D 对象的数据,然后将这些数据转换成  要呈现的 2D 三角形  。可以将位图纹理映射到这些三角形,然后使用 Graphics.drawTriangles  ()方法将三角形绘制为图形对象。这种方式的例子包括从文件中加载 3D 模型数据  并将模型呈现到屏幕上,或以三角形网格形式生成和绘制 3D 图形。

 

 

 

原帖地址:http://www.4ucode.com/Study/Topic/840272

没有更多推荐了,返回首页