Ejemplo n.º 1
0
        Vector toEuler() 
        {
            double sqw = W * W;
            double sqx = X * X;
            double sqy = Y * Y;
            double sqz = Z * Z;

            var ret = new Vector {
                X = (float)Math.Atan2((2.0*(X*Y + Z*W)), (sqx - sqy - sqz + sqw)),
                Y = (float)Math.Asin(-2.0*(X*Z - Y*W)/(sqx + sqy + sqz + sqw)),
                Z = (float)Math.Atan2(2.0*(Y*Z + X*W), (-sqx - sqy + sqz + sqw))
            };

            return ret;
        }
Ejemplo n.º 2
0
 private Quaternion(double w, Vector vec) {
     W = w;
     X = vec.X;
     Y = vec.Y;
     Z = vec.Z;
 }