Thursday, 15 August 2013

algorithm - Find the center of a circle (x and y position) with only 2 random points and bulge -


I'm trying to find the center of a circle. I have only one information: two random points in the circle and circle bulging. So far, I have managed to calculate the circle radius (at least I think I did).

Issue 1 (x = 10, y = 15) pointb (x = x) ========================== ================================================== === <6, y = 12)

circle_bulge = 0.41

distance = pointb - point A

radius = (distance / 4) * (circle_bulge + (1 / circle_blog)))

If this math is wrong, please let me know, but keep in mind that I need to find the X and Y coordinates of the circle center

There is a picture of this problem:

By definition, b = TG ( alpha / 4)

trigonometric formula From: TG (2 angle ) = 2tg ( angle ) / (1-tg 2 ( = <

has been applied to alpha / 4 and the definition of bullidge:

TG ( alpha / 2) = 2 b / (1- b 2 )

On the othe

TG (< Em> alpha / 2) = s / d

then

s / d = 2 b / (1- b 2 ) and

< Em> d = s (1- 2 ) / (2 b )

which allows us to calculate D Because b is known and s = || b - a || / 2, where || b - a || The vector shows the ideal of b - a .

Now, let's count

( u , v ) = ( b - A ) / || b - a

then || ( u , v ) || = 1, ( V , - u ) is the orthogonal of b - a , and we have

C = ( V , u ) d + ( a < / Em> + b ) / 2


UPDATE

Phonemic code to calculate the center

Input:

  A = (a1, a2), b = (b1, b2) "two point"; "Length"  

Calculation:

  "length" Model: = sqrt (class (B1-A1) + Class (B2-A2) S: = norm / 2D: = s * (1-square (b)) / (2 * b) "direction" U: = (B1-A1) / model. V: = (b2-a2) / standard "center" c1: = -v * d + (a1 + b1) / 2 c2: = u * d + (a2 + b2) / 2 return c: = ( C1, C2)  

Note: Center has two solutions, the second one

  C1: = V * D + (A1 + B1) / 2C2: = -U * D + (A2 + B2) / 2 return C: = (C1, C2)  

1 comment: