Angles
Espacio de nombres: Digi21.Math
Ensamblado: Digi21.DigiNG
Conversión entre radianes, grados sexagesimales y grados centesimales; entre azimutes y ángulos trigonométricos; entre grados decimales y grados, minutos y segundos; y entre giros omega, phi y kappa y su matriz de giro.
public static class Angles
Términos de esta página:
- Grado sexagesimal: 1/360 de circunferencia. Grado centesimal: 1/400 de circunferencia.
- Azimut: ángulo desde el norte (eje Y positivo), en el sentido de las agujas del reloj.
- Ángulo trigonométrico: ángulo desde el este (eje X positivo), en sentido contrario a las agujas del reloj.
Los métodos con un solo parámetro de entrada son métodos de extensión de double (this double), y MatrixToRotations es método de extensión de double[,]: x.RadianToGradian() equivale a Angles.RadianToGradian(x). DMSToSexagesimal y RotationsToMatrix no son métodos de extensión. Las páginas usan la llamada estática.
Métodos estáticos
| Método | Descripción |
|---|---|
| RadianToGradian | Radianes a grados centesimales. |
| GradianToRadian | Grados centesimales a radianes. |
| RadianToSexagesimal | Radianes a grados sexagesimales. |
| SexagesimalToRadian | Grados sexagesimales a radianes. |
| GradianToSexagesimal | Grados centesimales a grados sexagesimales. |
| SexagesimalToGradian | Grados sexagesimales a grados centesimales. |
| AzimuthToTrigonometric | Azimut a ángulo trigonométrico, en radianes. |
| TrigonometricToAzimuth | Ángulo trigonométrico a azimut, en radianes. |
| NormalizeAngle | Lleva un ángulo en radianes al intervalo [0, 2π]. |
| SexagesimalToDMS | Grados sexagesimales decimales a grados, minutos, segundos y signo. |
| DMSToSexagesimal | Grados, minutos, segundos y signo a grados sexagesimales decimales. |
| RotationsToMatrix | Giros omega, phi y kappa a matriz de giro de 3 × 3. |
| MatrixToRotations | Matriz de giro de 3 × 3 a giros omega, phi y kappa. |
Solo NormalizeAngle lanza excepciones por el valor del ángulo: ArgumentOutOfRangeException con NaN o un infinito. En los demás métodos, un argumento NaN produce un resultado NaN.
Ejemplo
Este programa recibe un azimut en grados sexagesimales y lo muestra en grados, minutos y segundos, en grados centesimales y como ángulo trigonométrico:
using System.Globalization;
using Digi21.Math;
if (args.Length != 1 || !double.TryParse(args[0], NumberStyles.Float, CultureInfo.InvariantCulture, out var azimutGrados))
{
Console.WriteLine("Uso: Angulos <azimut en grados sexagesimales>");
return 1;
}
var azimut = Angles.SexagesimalToRadian(azimutGrados);
var trigonometrico = Angles.AzimuthToTrigonometric(azimut);
Angles.SexagesimalToDMS(azimutGrados, out var grados, out var minutos, out var segundos, out var positivo);
Console.WriteLine($"Azimut: {(positivo ? "" : "-")}{grados}° {minutos}' {segundos:F3}\"");
Console.WriteLine($"Azimut: {Angles.RadianToGradian(azimut):F4} grados centesimales");
Console.WriteLine($"Ángulo trigonométrico: {Angles.RadianToSexagesimal(trigonometrico):F4}°");
return 0;