这个小系统用纯as3实现了3d 几何空间中的基本摄像机功能。可以绕任意轴旋转
摄像机对象(PosCamera实例)中,世界空间坐标到摄像机空间坐标的转换有两种:
1.未计算透视投影的转换:wcToVC(invs:Vector.<Number>, outvs:Vector.<Number>)
2.已计算透视投影的转换:wcToPVC(invs:Vector.<Number>, outvs:Vector.<Number>, len:int)
将摄像机空间坐标转换到世界空间坐标:vcToWC(invs:Vector.<Number>, outvs:Vector.<Number>)
希望能对需要了解的朋友有帮助。
屏幕表示对象(PosScreen 实例)将摄像机坐标空间坐标转换并匹配到屏幕坐标。
详细的还是请需要的朋友下载看代码吧。
源码中 bin/posthrd.swf 就是生成的swf文件
运行的时候可以多点击几下屏幕,可以看到不同的效果。
你看到的将是绕(0,1,0)轴旋转的简单几何图像。
以下代码片段是附件中Main.as中的代码
设置摄像机近平面的宽高比:
_camera.whk = _screen.screenRect.width / _screen.screenRect.height;
设置摄像机的焦距(一定要调用对应的单独update焦距的方法,这样做是为了减少运算量):
_camera.focalDis = 200;
_camera.updateFocalDis();
设置摄像机视场纵向夹角:
_camera.fov = 70;
_camera.updatefov();
设置摄像机的视点:
_camera.setLookAt( -110, 50, 0);
_camera.updateLookAt();
等等。。。。。。
源码下载请见(
http://download.csdn.net/detail/vily_lei/4467772
)