三点定圆(弧)
在计算机图形编程或数控加工编程中,通常需要通过给定的三点来确定一个圆弧,也就是要得到圆弧的半径、圆心,以及判断圆弧的方向
如图所示,为给定的三点,连接AB和BC,分别作AB和BC的中垂线,垂足分别为D和E,两垂线的交点为O ( x, y) ,即为圆弧所在圆的圆心。通过OD和OE的斜率可得如下方程组:
解上面方程组,可得
圆心坐标为:
半径:
其中:
设A,B,C 三点与圆心的连线同平行于X轴的线的夹角分别为 ,θ 的变化范围为[ - π, π] , 而θ/2 在(- π/2, π/2] 范围内单调递增,因此通过θ/2 的正切来判断,如:
其中A’为AR连线的中点,则:
存在两种情况:
(1) 都在( - π, 0] 或( 0, π] 区间
(2) 不同在( - π, 0] 或( 0, π] 区间,但肯定有两个是在同一区间
可以通过乘积来判断是否在同一区间,大致过程如下:
如果
说明这两角在不同区间,则如果
则圆弧为逆时针方向,否则为顺时针方向
如果
说明这两角在相同区间,则如果
则圆弧为顺时针方向,否则为逆时针方向