📄 c2point.m
字号:
%求两个圆(圆心为x1,y1半径为r1和圆心为x2,y2半径为r2)的两个交点(rp1x,rp1y)和(rp2x,rp2y)
%利用余弦定理
function [rp1x,rp1y,rp2x,rp2y]=c2point(x1,y1,r1,x2,y2,r2)
a=x2-x1;
b=y2-y1;
r=(a*a+b*b+r1*r1-r2*r2)/2;
if(a==0)&&(b~=0)
rp1y=r/b;
rp2y=r/b;
rp1x=sqrt(r1*r1-rp1y*rp1y);
rp2x=-rp1x;
end
if(a~=0&&b==0)
rp1x=r/a;
rp2x=r/a;
rp1y=sqrt(r1*r1-rp1x*rp2x);
rp2y=-rp1y;
end
if(a~=0&&b~=0)
delta=b*b*r*r-(a*a+b*b)*(r*r-r1*r1*a*a);
rp1y=(b*r+sqrt(delta))/(a*a+b*b);
rp2y=(b*r-sqrt(delta))/(a*a+b*b);
rp1x=(r-b*rp1y)/a;
rp2x=(r-b*rp2y)/a;
end
rp1x=x1+rp1x;
rp1y=y1+rp1y;
rp2x=x1+rp2x;
rp2y=y1+rp2y;
%ezplot('(x-x1)^2+(y-y1)^2-r1^2'); %绘制隐函数曲线
%hold on;
%ezplot('(x-x2)^2+(y-y2)^2-r2^2');
%调用函数c2point
%[rp1x,rp1y,rp2x,rp2y]=c2point(x1,y1,r1,x2,y2,r2);
%绘制交点
%plot(rp1x,rp1y,'*g');
%plot(rp2x,rp2y,'*g');
%hold off
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -