Большое переименование и рефакторинг углов / Big renaming and refactoring of angles

This commit is contained in:
Andrey Pokidov 2024-11-19 00:44:50 +07:00
parent 1afbf8c1d6
commit 72d06a23b2
38 changed files with 3819 additions and 3757 deletions

63
BGC/F64Turns.cs Normal file
View file

@ -0,0 +1,63 @@

/*
* Author: Andrey Pokidov
* Date: 18 Nov 2024
*/
namespace BGC
{
public class F64Turns
{
public static double TurnsToRadians(double turns)
{
return turns * F64Radians.TWO_PI;
}
public static double TurnsToDegrees(double turns)
{
return turns * 360.0;
}
public static double ToUnits(double turns, AngleUnit toUnit)
{
if (toUnit == AngleUnit.RADIANS)
{
return turns * F64Radians.TWO_PI;
}
if (toUnit == AngleUnit.DEGREES)
{
return turns * 360.0;
}
return turns;
}
public static double Normalize(double turns, AngleRange range)
{
if (range == AngleRange.UNSIGNED_RANGE)
{
if (0.0 <= turns && turns < 1.0)
{
return turns;
}
}
else
{
if (-0.5 < turns && turns <= 0.5)
{
return turns;
}
}
double rest = turns - Math.Floor(turns);
if (range == AngleRange.SIGNED_RANGE && rest > 0.5)
{
rest -= 1.0;
}
return rest;
}
}
}