给定不共线的三个点, 求经过这三点的圆弧参数方程
不妨始终假定, 与是圆弧的端点
通过简单的几何或代数方法可快速确定圆心和半径, 分别设为
与,
不难想象圆弧参数方程都可表示为:
, 参数
其中与为待定参数
也就是问题的关键是要求端点值与以及确定方向
具体求解步骤:
计算向量的角度
确定弧是顺时针方向或逆时针方向
若为逆时针, 也就是
, 参数
其中
若为顺时针, 也就是
, 参数
其中
要主意这里表示得到两平面向量叉积的轴值
一般性代码
A=(0,0) B=(1,0) C=(0,1) Q=center(circle(A,B,C)) r=abs(QA) t1=angle(A-Q) d=cross(A-C,B-C) t3=if(d>0,angle(A,Q,C),angle(C,Q,A)) t2=t1+t3 c=curve(Q+(r;t*sgn(d)),t,t1,t2)
参数归一化代码
A=(0,0) B=(1,0) C=(0,1) Q=center(circle(A,B,C)) r=abs(QA) t1=angle(A-Q) d=cross(A-C,B-C) t3=if(d>0,angle(A,Q,C),angle(C,Q,A)) c=curve(Q+(r;t1+t3*t*sgn(d)),t,0,1)