// array that holds pincussion values #include #include #define X_RES 255 #define Y_RES 255 #define RANGE 128 #define DEGREES 180.0/M_PI int Yaw_pos[255][255]; int Pitch_pos[255][255]; const double Z = RANGE; int compute_Pitch(int x, int y) { double result; double X = (double)x; double Y = (double)y; result = atan( Y / sqrt( pow(Z,2) + pow(X,2) ) ); return (int)rint(DEGREES*result); } int compute_Yaw(int x, int y) { double result; double X = (double)x; double Y = (double)y; result = atan( X / sqrt( pow(Z,2) + pow(Y,2) ) ); return (int)rint(DEGREES*result); } int main( void ) { int x, y; while(1) { scanf("%d,%d", &x, &y); printf("(%d,%d)\n",compute_Yaw(x,y),compute_Pitch(x,y)); } /* for( y=-127 ; y < 128 ; y++ ) { for( x=-127 ; x < 128 ; x++ ) { Yaw_pos[x+127][y+127] = compute_Yaw( x, y ); Pitch_pos[x+127][y+127] = compute_Pitch( x, y ); printf("(%d,%d) ",Yaw_pos[x+127][y+127],Pitch_pos[x+127][y+127]); } printf("\n"); }*/ }