怎样用Matlab 过三个点画外接圆?

想用function功能实现可添加子函数或嵌套函数,给出三个三角形顶点坐标(x,y),求画出这个三角形,并画处外接圆,输出圆心坐标和半径。。。。圆心公式已给出如图... 想用function 功能实现可添加子函数或嵌套函数,给出三个三角形顶点坐标(x,y),求画出这个三角形,并画处外接圆, 输出圆心坐标和半径。。。。圆心公式已给出如图 展开
 我来答
PeriShare
2017-02-24 · 分享PD理论最新研究成果和进展
PeriShare
采纳数:2408 获赞数:36827

向TA提问 私信TA
展开全部

可以这样做:

主程序

clc;clear
A=[1,2];
B=[2,3];
C=[1,4];
[CC,Radius]=CircleThru3Dots(A,B,C);
fprintf('坐标:(%f,%f)\n',CC)
fprintf('半径:%f\n\n',Radius)

函数程序

function [CC,Radius]=CircleThru3Dots(A,B,C)
Ah=A*A';
Bh=B*B';
Ch=C*C';
CC=zeros(size(A));
G=(C(2)-B(2))*A(1)+(A(2)-C(2))*B(1)+(B(2)-A(2))*C(1);
CC(1)=((Bh-Ch)*A(2)+(Ch-Ah)*B(2)+(Ah-Bh)*C(2))/(2*G);
CC(2)=-((Bh-Ch)*A(1)+(Ch-Ah)*B(1)+(Ah-Bh)*C(1))/(2*G);
Radius=sqrt((A-CC)*(A-CC)');
theta=linspace(0,2*pi,101);
x=CC(1)+Radius*cos(theta);
y=CC(2)+Radius*sin(theta);
plot(x,y,'r-')
ABC=[A;B;C];
hold on
plot(ABC(:,1),ABC(:,2),'b.','markersize',20)
plot(CC(1),CC(2),'r.','markersize',20)
grid on
box off
axis equal
end

效果图

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式