예제 #1
0
 public CoordenadaEsferica(float x, float y, float z)
 {
     acimutal = CommonHelper.GetArgumento(x, z);
     if (y != 0)
     {
         polar = FastMath.Atan(FastMath.Pow((x * x + z * z), 0.5f) / y);
     }
     else
     {
         polar = FastMath.PI_HALF;
     }
     polar = CommonHelper.ClampPositiveRadians(polar, FastMath.PI);
 }
예제 #2
0
 public static float GetArgumento(float a, float b)
 {
     if (a != 0)
     {
         int   cuadrante = Cuadrante(a, b);
         float angulo    = FastMath.Atan(b / a);
         if (cuadrante == 2 || cuadrante == 3)
         {
             angulo += CommonHelper.PI;
         }
         if (cuadrante == 4)
         {
             angulo += FastMath.TWO_PI;
         }
         return(angulo);
     }
     else
     {
         return((b >= 0) ? FastMath.PI_HALF : TRES_MEDIO_PI);
     }
 }