Переименование проектов и оптимизация вычислений / Renaming of projects and optimization of computations
This commit is contained in:
parent
37d86bc4c1
commit
75e5c02609
36 changed files with 177 additions and 379 deletions
76
BasicGeometry/FP32Radians.cs
Normal file
76
BasicGeometry/FP32Radians.cs
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
|
||||
/*
|
||||
* Author: Andrey Pokidov
|
||||
* Date: 18 Nov 2024
|
||||
*/
|
||||
|
||||
namespace BasicGeometry
|
||||
{
|
||||
public class FP32Radians
|
||||
{
|
||||
public const float PI = 3.1415926536f;
|
||||
public const float TWO_PI = 6.2831853072f;
|
||||
public const float HALF_OF_PI = 1.5707963268f;
|
||||
public const float THIRD_OF_PI = 1.0471975512f;
|
||||
public const float FOURTH_OF_PI = 0.7853981634f;
|
||||
public const float SIXTH_OF_PI = 0.5235987756f;
|
||||
|
||||
public const float DEGREES_IN_RADIAN = 57.295779513f;
|
||||
public const float TURNS_IN_RADIAN = 0.1591549431f;
|
||||
|
||||
public static float ToDegrees(float radians)
|
||||
{
|
||||
return radians * DEGREES_IN_RADIAN;
|
||||
}
|
||||
|
||||
public static float ToTurns(float radians)
|
||||
{
|
||||
return radians * TURNS_IN_RADIAN;
|
||||
}
|
||||
|
||||
public static float ToUnits(float radians, AngleUnit toUnit)
|
||||
{
|
||||
if (toUnit == AngleUnit.DEGREES)
|
||||
{
|
||||
return radians * DEGREES_IN_RADIAN;
|
||||
}
|
||||
|
||||
if (toUnit == AngleUnit.TURNS)
|
||||
{
|
||||
return radians * TURNS_IN_RADIAN;
|
||||
}
|
||||
|
||||
return radians;
|
||||
}
|
||||
|
||||
public static float Normalize(float radians, AngleRange range)
|
||||
{
|
||||
if (range == AngleRange.UNSIGNED_RANGE)
|
||||
{
|
||||
if (0.0 <= radians && radians < TWO_PI)
|
||||
{
|
||||
return radians;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
if (-PI < radians && radians <= PI)
|
||||
{
|
||||
return radians;
|
||||
}
|
||||
}
|
||||
|
||||
float turns = radians * TURNS_IN_RADIAN;
|
||||
|
||||
turns -= MathF.Floor(turns);
|
||||
|
||||
if (range == AngleRange.SIGNED_RANGE && turns > 0.5f)
|
||||
{
|
||||
turns -= 1.0f;
|
||||
}
|
||||
|
||||
return turns * TWO_PI;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue