前言
这里简单记录下对于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*