Unity 利用四元数旋转 强大的四元数

四元数乘法 *
建议非特别了解的人群就不要用了。
作用很简单,c=ab (c,a,b∈Quaternion)可以理解为 ∠c=∠a+∠b
但是a
b 和ba效果不一样的。
相乘会得到一个新的叠加旋转的四元数
以下为lua代码实现功能,
始终沿着一个轴旋转
local quaternionX = Quaternion.AngleAxis(self.y, self.m_fishTankRot.parent:TransformDirection(Vector3.left));
local quaternionY = Quaternion.AngleAxis(self.x, self.m_fishTankRot.parent:TransformDirection(Vector3.down));
local quaternion = quaternionX
quaternionY;
self.m_fishTankRot.localRotation = quaternion;

static function AngleAxis (angle : float, axis : Vector3) : Quaternion
Description
Creates a rotation which rotates angle degrees around axis.
物体沿指定轴向axis旋转角度angle, 很实用的一个函数也是。
脚本:
var obj1: Transform;
var obj2: Transform;
var q:Quaternion;
//物体沿obj2的z轴旋转,角度等于obj1的z轴。
q=Quaternion.AngleAxis(obj1.localEularAngle.z, obj2.TransformDirection(Vector3.forward));
transform.rotation=q;

你可能感兴趣的:(Unity 利用四元数旋转 强大的四元数)