PV3d_三个旋转函数的讲解:pitch()、yaw()、roll()
2009-12-08 17:10
274 查看
替代本地旋转-pitch()、yaw()、roll()
本地旋转与以下三个方法是同行:
? pitch():将物体绕X轴旋转(localRotationX)
? yaw():将物体绕Y轴旋转(localRotationY)
? roll():将物体绕Z轴旋转(localRotationZ)
每个方法需要接收一个指明旋转角度的参数。除了一个是方法,另一个是属性外,它们之间还有另一个重要的不同点。
每当本地属性被设置成新值的时候,旋转的值是绝对的。比如你要将do3D对象绕y轴旋转,Flash执行以下两行时,只会旋转10度而不是45度:
--code
do3D.localRotationY = 35;
do3D.localRotationY = 10;
--code
然后对于localRotationY的同行yaw()来说,旋转的值总是相对于当前的旋转值来说的,比如在init()方法中的以下两行来说,它就会让do3D对象旋转45度:
--code
do3D.yaw(35);
do3D.yaw(10);
******************************************************************************************************************************************************************************************************
********* (localRotationX,localRotationZ,localRotationY和flash里rotationX rotationY rotationZ一样,意思距(x=0,y=0,z=0)轴所旋转的角度) 即他们的值对应的角度是确定的!(相当于坐标一样确定)
********* pitch()、yaw()、roll()则是在原来的基础上继续增加角度(即 nowAngle+=参数角度)
******************************************************************************************************************************************************************************************************
--code
pitch()、yaw()和roll()方法当然也可以在render方法中使用。那样的话,当前的旋转值会通过传入的参数值每一帧产生相应的变化。将下面的代码加到render方法中会使do3D对象每一帧旋转一度。
--code
do3D.yaw(1);
--code
这和将下一行代码加入到render方法中的效果一样:
--code
plane.localRotationY++;
--code
pitch()和localRotationX、roll()和localRotationZ之间的区别和上面提到的是一样的。
本地旋转与以下三个方法是同行:
? pitch():将物体绕X轴旋转(localRotationX)
? yaw():将物体绕Y轴旋转(localRotationY)
? roll():将物体绕Z轴旋转(localRotationZ)
每个方法需要接收一个指明旋转角度的参数。除了一个是方法,另一个是属性外,它们之间还有另一个重要的不同点。
每当本地属性被设置成新值的时候,旋转的值是绝对的。比如你要将do3D对象绕y轴旋转,Flash执行以下两行时,只会旋转10度而不是45度:
--code
do3D.localRotationY = 35;
do3D.localRotationY = 10;
--code
然后对于localRotationY的同行yaw()来说,旋转的值总是相对于当前的旋转值来说的,比如在init()方法中的以下两行来说,它就会让do3D对象旋转45度:
--code
do3D.yaw(35);
do3D.yaw(10);
******************************************************************************************************************************************************************************************************
********* (localRotationX,localRotationZ,localRotationY和flash里rotationX rotationY rotationZ一样,意思距(x=0,y=0,z=0)轴所旋转的角度) 即他们的值对应的角度是确定的!(相当于坐标一样确定)
********* pitch()、yaw()、roll()则是在原来的基础上继续增加角度(即 nowAngle+=参数角度)
******************************************************************************************************************************************************************************************************
--code
pitch()、yaw()和roll()方法当然也可以在render方法中使用。那样的话,当前的旋转值会通过传入的参数值每一帧产生相应的变化。将下面的代码加到render方法中会使do3D对象每一帧旋转一度。
--code
do3D.yaw(1);
--code
这和将下一行代码加入到render方法中的效果一样:
--code
plane.localRotationY++;
--code
pitch()和localRotationX、roll()和localRotationZ之间的区别和上面提到的是一样的。
相关文章推荐
- yaw/pitch/roll这三个原来是这样旋转的
- yaw/pitch/roll这三个原来是这样旋转的
- Quaternion(四元数)和旋转以及Yaw, pitch, roll 的含义
- pitch、yaw、roll三个角的区别
- Quaternion(四元数)和旋转以及Yaw, pitch, roll 的含义
- 三个角 pitch roll yaw
- 3D 视角旋转矩阵 yaw pitch roll (pan, tilt)的数学计算
- pitch yaw roll 最直观的解释
- Yaw Pitch Roll的变换顺序问题
- 理解传说中的roll、yaw、pitch
- pitch yaw roll是什么
- Pitch,Yaw,Roll的概念
- 航空摄影测量中yaw,pitch,roll
- sqlserver中cast,convert,datepart,left,right这三个函数的使用讲解
- pitch yaw roll
- pitch yaw roll是什么
- pitch yaw roll是什么
- 几张图理解Roll, Pitch, Yaw的含义
- pitch yaw roll 的区别
- Unity 之欧拉角 pitch yaw roll