19 tfloat alpha = alpha1 - alpha3 ;
20 tfloat beta = alpha3 - alpha2 ;
22 tfloat sin_alpha = Sin( alpha ) ;
23 tfloat sin_beta = Sin( beta ) ;
25 tfloat a = sqrt( (x3-x1)*(x3-x1) + (y3-y1)*(y3-y1) ) ;
26 tfloat b = sqrt( (x3-x2)*(x3-x2) + (y3-y2)*(y3-y2) ) ;
28 tfloat AzAC = atan2( (x3-x1) , (y3-y1) ) ;
29 tfloat AzBC = atan2( (x3-x2) , (y3-y2) ) + TWOPI ;
31 tfloat gamma = AzAC - AzBC + TWOPI ;
33 tfloat delta1 =
PI - ( alpha + beta + gamma ) / 2 ;
35 tfloat lambda = atan ( a * sin_beta / ( b * sin_alpha ) ) ;
37 tfloat delta2 = atan( Tan( delta1 * Cot( QUARTPI + lambda ) ) ) ;
39 tfloat phi = delta1 + delta2 ;
41 tfloat c1 = a * Sin( alpha + phi ) / sin_alpha ;
45 *x = x1 + c1 * Sin( AzAP ) ;
46 *y = y1 + c1 * Cos( AzAP ) ;
#define PI
The value of PI.
double tfloat
Defines the type for float/double.