三角形两边的垂直平分线就能确定外接圆。
结果如下:
matlab代码如下:
clear all;close all;clc; p=rand(,); %(x,y) cen1=(p(,:)+p(,:))/; %三角形一条边中点
cen2=(p(,:)+p(,:))/; %另一条边中点 k1=-/((p(,)-p(,))/(p(,)-p(,))); %一条边垂直平分线
b1=cen1()-k1*cen1(); k2=-/((p(,)-p(,))/(p(,)-p(,))); %另一条边垂直平分线
b2=cen2()-k2*cen2(); x0=-(b1-b2)/(k1-k2); %求两直线交点
y0=-(-b2*k1+b1*k2)/(k1-k2); r=sqrt((y0-p(,))^+(x0-p(,))^); hold on;
plot(p(:,),p(:,));
p=circshift(p,);
plot(p(:,),p(:,)); theta=:0.01:*pi;
x=x0+r*cos(theta);
y=y0+r*sin(theta);
plot(x,y,'-',x0,y0,'.');
axis equal