matlab根据给定3点画圆弧_MATLAB习题:在XY平面上给定三点A、B、C,计算以这3个点为圆周的圆心与半径...
展开全部你好!为你解答,以下是我的matlab代码:clc;clear allA=input('请输入第一个坐标点的e5a48de588b662616964757a686964616f31333335343437[x1,y1]:');B=input('请输入第二个坐标点的[x2,y2]:');C=input('请输入第三个坐标点的[x3,y3]:');plot([A(1) B(1)],[A(2)
展开全部
你好!为你解答,以下是我的matlab代码:
clc;clear all
A=input('请输入第一个坐标点的e5a48de588b662616964757a686964616f31333335343437[x1,y1]:');
B=input('请输入第二个坐标点的[x2,y2]:');
C=input('请输入第三个坐标点的[x3,y3]:');
plot([A(1) B(1)],[A(2) B(2)],'b','linewidth',2);hold on
plot([A(1) C(1)],[A(2) C(2)],'b','linewidth',2);
plot([C(1) B(1)],[C(2) B(2)],'b','linewidth',2);
judge1=(B(1)-C(1))*(B(2)-A(2))-(B(1)-A(1))*(B(2)-C(2));
judge2=B(2)-A(2);
I1=0.5*(C(2)-A(2))*(B(2)-C(2))*(B(2)-A(2));
I2=0.5*(A(1)^2-B(1)^2)*(B(2)-C(2));
I3=0.5*(B(1)^2-C(1)^2)*(B(2)-A(2));
if(judge1==0)
fprintf('输入的三点构成一条直线,不能画一个圆。');
else
x0=(I1+I2+I3)/judge1;
if(judge2==0)
y0=-(B(1)-C(1))*(x0-0.5*(B(1)+C(1)))/(B(2)-C(2))+0.5*(B(2)+C(2));
else
y0=-(B(1)-A(1))*(x0-0.5*(B(1)+A(1)))/(B(2)-A(2))+0.5*(B(2)+A(2));
end
r=sqrt((x0-A(1))^2+(y0-A(2))^2);
theta=0:0.01:2*pi;
fprintf('\n圆的圆心是(%f,%f)\n',x0,y0);
fprintf('圆的半径是%f\n',r);
x=x0+r*cos(theta);
y=y0+r*sin(theta);
plot([x0,A(1)],[y0,A(2)],'g');
plot([x0,B(1)],[y0,B(2)],'g');
plot([x0,C(1)],[y0,C(2)],'g');
plot(x,y,'r','linewidth',2);
grid on
axis equal
end
运行后按照图片所示的格式输入坐标:
然后可以得到效果图哦!!!
希望我的回答对你有所帮助!!!满意还请采纳,O(∩_∩)O谢谢!
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)