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

展开全部

可以这样做:32313133353236313431303231363533e58685e5aeb931333363356630

主程序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

效果图

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值