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.