101 lines
4.2 KiB
Plaintext
101 lines
4.2 KiB
Plaintext
include "NSLog.incl"
|
|
|
|
double local fn Normalize( f as double, n as double )
|
|
double a = f
|
|
while ( a < -n ) : a += n : wend
|
|
while ( a >= n ) : a -= n : wend
|
|
end fn = a
|
|
|
|
double local fn NormalizeToDegrees( f as double ) return fn Normalize( f, 360 ) end fn = 0.0
|
|
double local fn NormalizeToGradians( f as double ) return fn Normalize( f, 400 ) end fn = 0.0
|
|
double local fn NormalizeToMils( f as double ) return fn Normalize( f, 6400 ) end fn = 0.0
|
|
double local fn NormalizeToRadians( f as double ) return fn Normalize( f, 2 * M_PI ) end fn = 0.0
|
|
|
|
double local fn d2g( f as double ) return f * 10 / 9 end fn = 0.0
|
|
double local fn d2m( f as double ) return f * 160 / 9 end fn = 0.0
|
|
double local fn d2r( f as double ) return f * M_PI / 180 end fn = 0.0
|
|
|
|
double local fn g2d( f as double ) return f * 9 / 10 end fn = 0.0
|
|
double local fn g2m( f as double ) return f * 16 end fn = 0.0
|
|
double local fn g2r( f as double ) return f * M_PI / 200 end fn = 0.0
|
|
|
|
double local fn m2d( f as double ) return f * 9 / 160 end fn = 0.0
|
|
double local fn m2g( f as double ) return f / 16 end fn = 0.0
|
|
double local fn m2r( f as double ) return f * M_PI / 3200 end fn = 0.0
|
|
|
|
double local fn r2d( f as double ) return f * 180 / M_PI end fn = 0.0
|
|
double local fn r2g( f as double ) return f * 200 / M_PI end fn = 0.0
|
|
double local fn r2m( f as double ) return f * 3200 / M_PI end fn = 0.0
|
|
|
|
local fn CalculateDegrees
|
|
CFArrayRef angles = @[@-2, @-1, @0, @1, @2, @6.2831853, @16, @57.2957795, @359, @6399, @1000000]
|
|
double angle, degrees, gradians, mils, radians
|
|
NSUInteger i
|
|
CFStringRef unit
|
|
CFStringRef dashpad = fn StringByPaddingToLength( @"", 73, @"-", 0 )
|
|
|
|
ptr anglePtr = fn StringUTF8String( @"Angle" )
|
|
ptr unitPtr = fn StringUTF8String( @"Unit" )
|
|
ptr normalPtr = fn StringUTF8String( @"Normalized" )
|
|
ptr gradiansPtr = fn StringUTF8String( @"Gradians" )
|
|
ptr milsPtr = fn StringUTF8String( @"Mils" )
|
|
ptr radiansPtr = fn StringUTF8String( @"Radians" )
|
|
|
|
// Header
|
|
NSLog( @"\n%@", dashpad )
|
|
NSLog( @"%13s %5s %15s %10s %7s %15s", anglePtr, unitPtr, normalPtr, gradiansPtr, milsPtr, radiansPtr )
|
|
NSLog( @"%@", dashpad )
|
|
|
|
// Degrees
|
|
for i = 0 to fn ArrayCount( angles ) - 1
|
|
angle = dblval( angles[i] )
|
|
unit = @"Degrees"
|
|
degrees = fn NormalizeToDegrees( angle )
|
|
gradians = fn NormalizeToGradians( fn d2g( degrees ) )
|
|
mils = fn NormalizeToMils( fn d2m( degrees ) )
|
|
radians = fn NormalizeToRadians( fn d2r( degrees ) )
|
|
NSLog( @"%13.4f %-10s % -12.4f % -11.4f % -12.4f % -13.4f", angle, fn StringUTF8String( unit ), degrees, gradians, mils, radians )
|
|
next
|
|
NSLog( @"" )
|
|
|
|
// Gradians
|
|
for i = 0 to fn ArrayCount( angles ) - 1
|
|
angle = dblval( angles[i] )
|
|
unit = @"Gradians"
|
|
gradians = fn NormalizeToGradians( angle )
|
|
degrees = fn NormalizeToDegrees( fn g2d( gradians ) )
|
|
mils = fn NormalizeToMils( fn g2m( gradians ) )
|
|
radians = fn NormalizeToRadians( fn g2r( gradians ) )
|
|
NSLog( @"%13.4f %-10s % -12.4f % -11.4f % -12.4f % -13.4f", angle, fn StringUTF8String( unit ), degrees, gradians, mils, radians )
|
|
next
|
|
NSLog( @"" )
|
|
|
|
// Mils
|
|
for i = 0 to fn ArrayCount( angles ) - 1
|
|
angle = dblval( angles[i] )
|
|
unit = @"Mils"
|
|
mils = fn NormalizeToMils( angle )
|
|
degrees = fn NormalizeToDegrees( fn m2d( mils ) )
|
|
gradians = fn NormalizeToGradians( fn m2g( mils ) )
|
|
radians = fn NormalizeToRadians( fn m2r( mils ) )
|
|
NSLog( @"%13.4f %-10s % -12.4f % -11.4f % -12.4f % -13.4f", angle, fn StringUTF8String( unit ), degrees, gradians, mils, radians )
|
|
next
|
|
NSLog( @"" )
|
|
|
|
// Radians
|
|
for i = 0 to fn ArrayCount( angles ) - 1
|
|
angle = dblval( angles[i] )
|
|
unit = @"Radians"
|
|
radians = fn NormalizeToRadians( angle )
|
|
degrees = fn NormalizeToDegrees( fn r2d( radians ) )
|
|
gradians = fn NormalizeToGradians( fn r2g( radians ) )
|
|
mils = fn NormalizeToMils( fn r2m( radians ) )
|
|
NSLog( @"%13.4f %-10s % -12.4f % -11.4f % -12.4f % -13.4f", angle, fn StringUTF8String( unit ), degrees, gradians, mils, radians )
|
|
next
|
|
NSLog( @"%@", dashpad )
|
|
end fn
|
|
|
|
fn CalculateDegrees
|
|
|
|
HandleEvents
|