This function are the base for the forms operations functions.
You can use it to implement your own operations.
Parameters: 


Return type:  
Returns:  A new rotated Pixel. 
This function return the rotated pixel from angle degrees around the given center in clock sens.
Note
Rotating a pixel around the origin is easy doing according following formel in matrix form:
+ + + + + +
 x1   cos(angle) sin(angle) 0   x 
 y2  =  sin(angle) cos(angle) 0  *  y 
 0   0 0 1   0 
+ + + + + +
So you can simply translate the pixel in accord to the origin rotate it and translate it back.
But SDL2_gfxutils use a function based on matrix to rotate the pixel around an arbitrary point.
See the source at file base_functions.c.
Parameters: 


Return type:  
Returns:  A new scaled pixel (position). 
This function return the new position from pixel scaled by factor:
factor < 1 == scaling littler.
factor > 1 == scaling greater.
Note
A pixel can only be corrected scaled in accord to the origin.
So you can simply translate the pixel in accord to the origin multiply x and y with the scaling factor and translate it back.
Parameters: 


Return type:  
Returns:  A new pixel translated from x and y. 
This function translate a pixel from value x and y.
Note:  x and y can be negativ for translating in direction of the left or to the top. 

Note
For translating a pixel simply add (even negativ) the wanted values to the x and y from the pixel Pixel members.
Parameters: 


Return type:  
Returns:  A new pixel mirrored around center trough the X or Y axes. 
This function mirror a pixel through the x (Vertical) or y (Horizontal) axes in relationship to the given center.
Note
The center of the mirroring.
The center argument given the mirroring center and in case of mirroring on the:
Warning
Take care of the Form operation function condition.
x += center.x ; y += center.y // (translate according the origin).
// Operation on the pixel.
x += center.x ; y += center.y // (translate it back).
They all apply a transformation on a form by calling the pixels operations functions.
By using a pointer on the generic Form type form to transform given as argument.
Parameters: 


Return type:  void. 
This function perform a rotation on a form itself, through an pointer on it, from angle degrees around the center from the form.
Note
Rotation center.
You can change temporary the center of the form you want to rotate the form around the wanted center,
with the function set_form_center().
instead of the center of the form itself.
warning:  If you use a display function which strikethrough from the center: the displaying will degenerate (maybe you do it express). 

Parameters: 


Return type:  void. 
This function scale the adressed form from value factor.
Note
Scaling factor.
Note
You can set a new radius (which will update the length Form type member) directly,
With the function set_form_radius()
What permit to change the size of the form without using a factor but a radius instead.
warning:  Use only integers values or not more than 3 precision (%.3f) otherwise your request will not be exactly satisfy. 

Parameters: 


Return type:  void. 
This function translate the adressed form from values x and y.
Note:  x and y can be negativ for translating in direction of the left or to the top. 

Warning:  Use only integers values or not more than 3 precision (%.3f) otherwise your request will not be exactly satisfy. 
Parameters: 


Return type:  void. 
This function mirror the given form through the x (Vertical) or y (Horizontal) axes in relationship to the given center.
Warning
This function is subject of a big condition to work properly !!!
All coordinates must be at one side from the center axe.
Argument axes:
‘X’) If mirroring over axes X all pixels must must be above or below from the center argument x Pixel type member.
‘Y’) If mirroring over axes Y all pixels must must be at the right or at the left from the center argument y Pixel type member.
Parameters: 



Return type:  
Returns:  The same form with doubles (same values) coordinates removed.
