public static MyQuat FromAxisAngle(axisAngle axis) { MyQuat q = new MyQuat(); q.w = Mathf.Cos(axis.w / 2); q.x = axis.x * Mathf.Sin(axis.w / 2); q.y = axis.y * Mathf.Sin(axis.w / 2); q.z = axis.z * Mathf.Sin(axis.w / 2); q.Normalize(); return(q); }
public axisAngle ToAxisAngle() { axisAngle axis = new axisAngle(); Normalize(); axis.w = 2 * Mathf.Acos(w); float s = Mathf.Sqrt(1 - (w * w)); if (s < 0.01) { axis.x = x; axis.y = y; axis.z = z; } else { axis.x = x / s; axis.y = y / s; axis.z = z / s; } return(axis); }
public axisAngle toAxisAngle() { axisAngle axis = new axisAngle(); this.normalize(); axis.w = 2 * Mathf.Acos(this.w); float s = Mathf.Sqrt(1 - (this.w * this.w)); if (s < 0.01) { axis.x = this.x; axis.y = this.y; axis.z = this.z; } else { axis.x = this.x / s; axis.y = this.y / s; axis.z = this.z / s; } return(axis); }