Math functions


Defines

#define PA_Cos(angle)   PA_SIN[((angle) + 128)&511]
 Returns the Cos value for an angle. The value goes from -256 to 256... Watch out though : the angle is not in 360 degrees, but in 512 !
#define PA_Sin(angle)   PA_SIN[((angle))&511]
 Returns the Sin value for an angle. The value goes from -256 to 256... Watch out though : the angle is not in 360 degrees, but in 256 !

Functions

u32 PA_Rand (void)
 Gives a random number, taken from Ham... This is taken from Ham, I have no credit.
void PA_InitRand (void)
 Auto-seeds the Rand function based on the clock !
void PA_SRand (s32 r)
 Set the random's seed. This is taken from Ham, I have no credit. I just made it a little shorter/faster (maybe).
u32 PA_RandMax (u32 max)
 Gives a random number, between 0 and the given number (included).
u32 PA_RandMinMax (u32 min, u32 max)
 Gives a random number, between the 2 given numbers (included).
u64 PA_Distance (s32 x1, s32 y1, s32 x2, s32 y2)
u64 PA_TrueDistance (s32 x1, s32 y1, s32 x2, s32 y2)
 Calculate the real distance between 2 points. Much slower than PA_Distance.
u16 PA_AdjustAngle (u16 angle, s16 anglerot, s32 startx, s32 starty, s32 targetx, s32 targety)
 Adjust an angle, for example to calculate in which direction an object shoudl turn.
u16 PA_GetAngle (s32 startx, s32 starty, s32 targetx, s32 targety)
 Get the angle, from 0 to 511, formed between the horizontal and the line.

Variables

u32 RandomValue

Detailed Description

Adjust angles, get random values...

Define Documentation

#define PA_Cos ( angle   )     PA_SIN[((angle) + 128)&511]

Returns the Cos value for an angle. The value goes from -256 to 256... Watch out though : the angle is not in 360 degrees, but in 512 !

#define PA_Sin ( angle   )     PA_SIN[((angle))&511]

Returns the Sin value for an angle. The value goes from -256 to 256... Watch out though : the angle is not in 360 degrees, but in 256 !


Function Documentation

u16 PA_AdjustAngle ( u16  angle,
s16  anglerot,
s32  startx,
s32  starty,
s32  targetx,
s32  targety 
)

Adjust an angle, for example to calculate in which direction an object shoudl turn.

Parameters:
angle Base angle, from 0 to 511
anglerot For how much to turn...
startx Initial X position
starty Initial Y position
targetx Target X position
targety Target Y position

u64 PA_Distance ( s32  x1,
s32  y1,
s32  x2,
s32  y2 
) [inline]

inline u16 PA_GetAngle ( s32  startx,
s32  starty,
s32  targetx,
s32  targety 
) [inline]

Get the angle, from 0 to 511, formed between the horizontal and the line.

Parameters:
startx Initial X position
starty Initial Y position
targetx Target X position
targety Target Y position

inline void PA_InitRand ( void   )  [inline]

Auto-seeds the Rand function based on the clock !

inline u32 PA_Rand ( void   )  [inline]

Gives a random number, taken from Ham... This is taken from Ham, I have no credit.

inline u32 PA_RandMax ( u32  max  )  [inline]

Gives a random number, between 0 and the given number (included).

Parameters:
max Maximum included value

inline u32 PA_RandMinMax ( u32  min,
u32  max 
) [inline]

Gives a random number, between the 2 given numbers (included).

Parameters:
min Minimum included value
max Maximum included value

void PA_SRand ( s32  r  )  [inline]

Set the random's seed. This is taken from Ham, I have no credit. I just made it a little shorter/faster (maybe).

Parameters:
r Seed value

inline u32 PA_TrueDistance ( s32  x1,
s32  y1,
s32  x2,
s32  y2 
) [inline]

Calculate the real distance between 2 points. Much slower than PA_Distance.

Parameters:
x1 X coordinate of the fist point
y1 Y coordinate of the first point
x2 X coordinate of the second point
y2 Y coordinate of the second point


Variable Documentation


Generated on Sat Jun 13 12:55:14 2009 for PAlib - Programmer's Arsenal by  doxygen 1.5.8