Home > Back-end >  Calculate circle center (3D) from 2 point, arc angle and plane normal
Calculate circle center (3D) from 2 point, arc angle and plane normal

Time:09-18

I need to calculate a 3D circle center point from 2 points(3D) and arc angle (plane normal is also known).

I searched it with Google but I think my English is not good enough to search properly. Anyone know the calculations to do this?

CodePudding user response:

We have points A, B, normal N, angle Fi.

Calculate difference vector (arc chord) and middle point

AB = B - A
M = (A   B) / 2

enter image description here

Calculate vector F perpendicular to AB and N using vector product and normalize it

F = AB x N
uF = F / len(F)

We know that circle center C lies on the ray from point M with direction F (with parameter t equal to apothem CM length (center-chord distance))

C = M   t * uF

What should be t value? We can express t through right triangle AMC parameters

 tan(Fi/2) = 0.5*len(AB) / t

So finally center is

C = M   uF * 0.5*len(AB) / tan(Fi/2)

Note that center C is not unique because we don't know arc direction (just change sign before uF in the last formula and get mirror point C' against chord)

  • Related