Exemple #1
0
        /// <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();
        }
Exemple #2
0
 public static Quaternion FromAxisAngle(Vector3f v, double angle)
 {
     v.MakeUnitVector();
     return(new Quaternion(QuaternionParameterType.UnitAxisAngle, v.X, v.Y, v.Z, angle));
 }