normalize()
方法将四元数单位化(即其长度变为1)。此方法可以确保一个四元数保持在单位球面(或者说单位四元数)中。
Quaternion.normalize();
当前四元数。
var q = new Quaternion(0, 1, 0, 1);
q.normalize();
console.log(q); // Quaternion { x: 0, y: 0.7071067811865475, z: 0, w: 0.7071067811865475 }
四元数的 normalize 方法实际上就是对四元数的各个分量进行归一化操作,使得其模长为1,从而将其转化为单位四元数。
设四元数 q = xi + yj + zk + w
,则:
四元数的模长 |q| = √(x^2 + y^2 + z^2 + w^2)。
若将四元数除以其模长,则有 q/|q| = (xi + yj + zk + w) / √(x^2 + y^2 + z^2 + w^2)
,若此时将其各分量均除以 |q|,则可得归一化之后的四元数。
即有:q' = xi' + yj' + zk' + w'
,其中:
xi' = x / |q|
yj' = y / |q|
zk' = z / |q|
w' = w / |q|
normalize()
方法时,该操作将不会对其进行任何改变。