您当前的位置: 首页 >  matlab

matlab绘制圆,且求解两个圆的交点坐标

发布时间:2021-12-01 17:21:50 ,浏览量:2

前言

这里简单记录下对于matlab绘制圆,以及求解两圆交点的坐标的实现(包括C++)。

一 绘制圆

circle.m文件:

function [] = circle(x, y, r, color)
rectangle('Position', [x-r,y-r, 2*r, 2*r], 'Curvature', [1, 1], 'linewidth', 1,  'EdgeColor', color) 
axis equal
end
二 求解两圆交点

CircleCross.m文件: 求解两圆交点

function p=CircleCross(cic1,cic2)

    x0=cic1(1);
    y0=cic1(2);
    r0=cic1(3);

    x1=cic2(1);
    y1=cic2(2);
    r1=cic2(3);

    d=sqrt((x0-x1)^2+(y0-y1)^2);    %两圆心距离

    k1=(y0-y1)/(x0-x1);         %连接两圆心直线
    b1=y1-k1*x1;

    k2=-1/k1;               %公共弦方程直线
    b2=(r0^2-r1^2-x0^2+x1^2-y0^2+y1^2)/(2*(y1-y0));

    p=[];
    if d==abs(r1-r0) || d==r1+r0        %相切时的交点
        xx=-(b1-b2)/(k1-k2);
        yy=-(-b2*k1+b1*
关注
打赏
1688896170
查看更多评论

暂无认证

  • 2浏览

    0关注

    104724博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0474s