Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 193 → Rev 194

/branches/salvo_gps/math.c
14,7 → 14,7
Winkelfunktionen sin, cos und arctan in
brute-force Art: Sehr Schnell, nicht sonderlich genau, aber ausreichend
Sinus Funktion von Nick666 vereinfacht
Stand 30.9.2007
Stand 1.10.2007
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
*/
#include "main.h"
21,10 → 21,10
 
 
// arctan Funktion: Eingabewert x,y Rueckgabe =arctan(x,y) in grad
int arctan_i(long signed int x, long signed int y)
int arctan_i( signed int x, signed int y)
{
short int change_xy = 0;
long signed int i;
signed int i;
long signed int wert;
int return_value;
 
44,15 → 44,15
 
if (wert <=268) //0...0.0,268 entsprechend 0..15 Grad
{
return_value = (int)((wert*100)/(268-0)*(15-0)/100) +0;
return_value = (signed int)((wert*100)/(268-0)*(15-0)/100) +0;
}
else if (wert <=578) //0,268...0.0,568 entsprechend 15..30 Grad
{
return_value = (int)((((wert-268)*100)/(578-268)*(30-15))/100) +15;
return_value = (signed int)((((wert-268)*100)/(578-268)*(30-15))/100) +15;
}
else //0,568...1 entsprechend 30..45 Grad
{
return_value = (int)((((wert-578)*50)/(1000-578)*(45-30))/50) +30;
return_value = (signed int)((((wert-578)*50)/(1000-578)*(45-30))/50) +30;
}
 
if (change_xy == 0) return_value = 90-return_value; //Quadrant 45..90 Grad