在计算机图形编程或数控加工编程中,通常需要通过给定的三点来确定一个圆弧,也就是要得到圆弧的半径、圆心,以及判断圆弧的方向
如图所示, 为给定的三点,连接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, π ] 区间,但肯定有两个是在同一区间
可以通过乘积来判断是否在同一区间,大致过程如下:
如果
说明这两角在不同区间,则如果
则圆弧为逆时针方向,否则为顺时针方向
如果
说明这两角在相同区间,则如果
则圆弧为顺时针方向,否则为逆时针方向