1 给定三个不在同一直线上的三个点的坐标,确定圆的轨迹方程
2
3
4 下面是MATLAB中的函数文件
5 function[a,b,c]=ThreePointFitCircle(x,y,flag)
6 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7 %Author By:Wacs5
8 %Date:20090813
9 %Email:wacs5@http://www.doczj.com/doc/09987f58804d2b160b4ec0bd.html
10 %Function:三点确定一个圆
11 %Argument:x,y为三个点的横纵坐标(行向量或列向量)
12 %flag为是否画图表示
13 %返回的是:a,b为圆心。c为半径
14 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15 if(nargin<3)%如果有第三个参数,就画图
16 flag=0;
17 end
18
19 A=[x(1)-x(2),y(1)-y(2);x(3)-x(2),y(3)-y(2)];
20 B=[x(1)^2-x(2)^2+y(1)^2-y(2)^2;x(3)^2-x(2)^2+y(3)^2-y(2)^2];
21
22 if det(A)<1e-6
23 error('三点趋于共线');
24 end
25
26 ab=A\B;
27 a=ab(1)/2;
28