コード例 #1
0
        /// <summary>
        ///     Devuelve el ángulo (en grados) entre v1 y v2.
        ///     <para>Ambos vectores se normalizan y quedan modificados.</para>
        ///     <para>Si uno de los vectores o los dos valen cero, devuelve 90º.</para>
        ///     <para>El ángulo devuelto varia entre 0 y 180 grados</para>
        /// </summary>
        /// <param name="v1"></param>
        /// <param name="v2"></param>
        /// <returns></returns>
        public static double Angle(Vector3F v1, Vector3F v2)
        {
            v1.Normalize();
            v2.Normalize();
            var rdot   = v1.Dot(v2);
            var result = Math.Acos(rdot);

            return(MathHelp.DegreesFromRadians((float)result));
        }
コード例 #2
0
 /// <summary>
 ///     Establece los ejes unitarios de esta matriz según la rotación dada por los grados alto ejes indicados.
 /// </summary>
 /// <param name="grados"></param>
 /// <param name="ejeX"></param>
 /// <param name="ejeY"></param>
 /// <param name="ejeZ"></param>
 public virtual void Rotation(float grados, float ejeX, float ejeY, float ejeZ)
 {
     GetTranslation(ref _tempV3);
     _tempQRot.SetIdentity();
     _tempQRot.Rotation(MathHelp.RadiansFromDegrees(grados), ejeX, ejeY, ejeZ);
     //tempQRot.GetMatriz4(ref auxMat4);
     //this.CopiaDesde(auxMat4);
     FromQuaternion(_tempQRot);
     Translation3F = _tempV3;
 }
コード例 #3
0
 public static Quaternion4F FromDegreesAxis(float degrees, Vector3F axis)
 {
     return(FromRadiansAxis(MathHelp.RadiansFromDegrees(degrees), axis.X, axis.Y, axis.Z));
 }
コード例 #4
0
 public static Quaternion4F FromDegreesAxis(float degrees, float x, float y, float z)
 {
     return(FromRadiansAxis(MathHelp.RadiansFromDegrees(degrees), x, y, z));
 }