怎样用Matlab 过已知三个点画圆?

比如有三个点 a(1,0),b(2,3),c(3,2),我想过这三个点画一个圆,然后找出它的圆心,怎么样用matlab求得呢?
我知道求圆心,连接任意两个点,然后过其中点,做垂线,相交就得到圆心了,但是怎么样用matlab来做呢?
哪为高人可以帮帮小妹呢?

这样写更有通用性:

clc;clear
xy=[1 0;2 3;3 2] %a(1,0),b(2,3),c(3,2)
syms x0 y0 R
f=(xy(:,1)-x0).^2+(xy(:,2)-y0).^2-R^2 %版本太低可能不行
[R,x0,y0]=solve(f(1),f(2),f(3))
R=eval(R(1)),x0=eval(x0(1)),y0=eval(y0(1))%把符号变量转换成数值
t=0:pi/20:2*pi;
x=R*cos(t)+x0;y=R*sin(t)+y0;
plot(x,y,[xy(:,1);xy(1,1)] ,[xy(:,2);xy(1,2)])%三角形
axis equal,grid
figure
plot(x,y,xy(:,1) ,xy(:,2),'*r')
axis equal,grid

结果:
xy =

1 0
2 3
3 2

f =

(1-x0)^2+y0^2-R^2
(2-x0)^2+(3-y0)^2-R^2
(3-x0)^2+(2-y0)^2-R^2

R =

1/2*10^(1/2)
-1/2*10^(1/2)

x0 =

3/2
3/2

y0 =

3/2
3/2

R = 1.5811
x0 = 1.5000
y0 = 1.5000

图形见:
http://hi.baidu.com/chemical%5Fengineering/album/item/e091ca80b45e5df29023d91f.html
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-06-03
求外心坐标,就是外心到三个顶点距离相等,用matlab解方程就可以得到
>> [x,y]=solve('(x-1)^2+(y-0)^2=(x-2)^2+(y-3)^2', '(x-1)^2+(y-0)^2=(x-3)^2+(y-2)^2')

x =

3/2

y =

3/2

所以外接圆圆心为(3/2, 3/2)
第2个回答  2009-06-03
首先求出圆心的位置,很简单,到三点距离都相等的点就行了阿!
语句如下所示
[x,y]=solve('(x-1)^2+(y-0)^2=(x-2)^2+(y-3)^2', '(x-1)^2+(y-0)^2=(x-3)^2+(y-2)^2')
然后求出半径
R=sqrt((x-1)^2+(y-0)^2)
然后 使用参数方程求解即可
X=x+R*cos(0:0.01:2*pi);
Y=y+R*sin(0:0.01:2*pi);
最后画图
plot(X,Y)