![]() |
DDM君 (2009-12-30 20:37:50) |
三维的rotation如果不用四元数,是很麻烦的,是一个相对的旋转,也就说当你旋转了一个轴后,另外的轴的方向都可能变换了。 如果要制作流畅正确的旋转,参考我们研究所下面这篇文章: http://www.flab3d.com/tutorial.php?top=t21quat |
![]() |
hunter_xsy (2009-12-31 10:30:31) |
|
![]() |
hunter_xsy (2009-12-31 10:43:53) |
谢谢DDM君的提示,教程看得我有点云里雾里。:( 现在的问题就是要把rotationX和rotationY换算成四元数是吧, 那具体的写法是否是这样? var point:number3D=new Number3D(0,0,0); var arr:Array=[cos90,0,-sin90,0, 0,1,0,0, sin90,0,cos90,0, 0,0,0,1]; var matrix: Matrix3D=new Matrix3D(arr); cube.rotationY=Matrix3D.multiplyVector4x4(matrix,point) |
![]() |
hunter_xsy (2009-12-31 10:47:09) |
然后COS跟SIN的度数也要换成弧度数? Math.sin(90 * Math.PI/180) Math.cos(90 * Math.PI/180) |
![]() |
hunter_xsy (2009-12-31 17:38:47) |
trace(matrix)和trace(point)都有结果,为嘛我trace(Matrix3D.multiplyVector4x4(matrix,point) )的结果是undefined呀? |
|
|