如何过三点坐标画一个圆 – MATLAB中文论坛

如题所述

%首先需要知道三个点的坐标(x1,y1),(x2,y2),(x3,y3)
%然后最好将其放入两个列向量x,y里,也就是
%x= x1          y= y1
%   x2             y2
%   x3             y3
%这里用两个随机数组生成三个点的x,y坐标
x=rand(3,1);
y=rand(3,1);

TR = triangulation([1,2,3],x,y); %表示成三角网格
[cc,r] = circumcenter(TR);       %利用matlab内置函数,求外接圆心和半径
%cc是有两个数的行向量,表示外接圆心的x,y坐标
%r是外接圆的半径
deg=0:360;           %这是角度的取值,0~360间隔越小圆越平滑
rx=cc(1)+r*cosd(deg);
ry=cc(2)+r*sind(deg); %这三句根据圆心和半径生成圆的数据

plot(x,y,'ko');hold on ;  %画出三点位置
plot(rx,ry,'r');hold off; %画出外接圆
axis equal;

%实际情况需要考虑三点共线的情况,这是后半径r会为无穷大
%可以在circumcenter函数返回后增加判断语句,当r大于某个
%很大的数的时候就判断三点共线,不能画园

温馨提示:答案为网友推荐,仅供参考
相似回答