这样写更有通用性:
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