17 tfloat alpha12 = alpha2 - alpha1 ;
18 tfloat alpha23 = alpha3 - alpha2 ;
20 tfloat d12 = sqrt( (x2-x1)*(x2-x1) + (y2-y1)*(y2-y1) ) ;
21 tfloat d23 = sqrt( (x3-x2)*(x3-x2) + (y3-y2)*(y3-y2) ) ;
23 tfloat delta12 = atan2( (y2-y1) , (x2-x1) ) ;
24 tfloat ra = d12 / ( 2 * Sin( alpha12 ) ) ;
25 tfloat cax = x1 - ra * Sin( delta12 - alpha12 ) ;
26 tfloat cay = y1 + ra * Cos( delta12 - alpha12 ) ;
28 tfloat delta23 = atan2( (y3-y2) , (x3-x2) ) ;
29 tfloat rb = d23 / ( 2 * Sin( alpha23 ) ) ;
30 tfloat cbx = x2 - rb * Sin( delta23 - alpha23 ) ;
31 tfloat cby = y2 + rb * Cos( delta23 - alpha23 ) ;
33 tfloat d = sqrt( (cbx-cax)*(cbx-cax) + (cby-cay)*(cby-cay) ) ;
35 tfloat d2r = ( rb*rb + d*d - ra*ra ) / ( 2 * d ) ;
37 tfloat gamma = acos( d2r / rb ) ;
39 tfloat phi = atan2( (cay-cby) , (cax-cbx) ) ;
41 tfloat R1x = cbx + rb * Cos( gamma - phi ) ;
42 tfloat R1y = cby - rb * sin( gamma - phi ) ;
43 tfloat v1 = sqrt( (R1x-x2)*(R1x-x2) + (R1y-y2)*(R1y-y2) ) ;
45 tfloat R2x = cbx + rb * Cos( phi + gamma ) ;
46 tfloat R2y = cby + rb * Sin( phi + gamma ) ;
47 tfloat v2 = sqrt( (R2x-x2)*(R2x-x2) + (R2y-y2)*(R2y-y2) ) ;
double tfloat
Defines the type for float/double.