/// <summary> /// Set the Quaternion based on an Axis-Angle pair /// </summary> /// <param name="axis">The (unit-)Axis</param> /// <param name="a">The rotation Angle</param> public void SetFromAxisAngle(Vector3f axis, double a) { axis.MakeUnitVector(); double sina = (double)Math.Sin(a / 2.0); X = axis.X * sina; Y = axis.Y * sina; Z = axis.Z * sina; W = (double)Math.Cos(a / 2.0); MakeRobust(); this.MakeUnitQuaternion(); }
public static Quaternion FromAxisAngle(Vector3f v, double angle) { v.MakeUnitVector(); return(new Quaternion(QuaternionParameterType.UnitAxisAngle, v.X, v.Y, v.Z, angle)); }