MATLAB,画圆咋画。啊这,

怎么用MATLAB画两个相切的圆 ,怎么画。。。。。。。。。。。。。。。。。

同学你好,画两个相切的圆,需要以下参数,两个圆的圆心和半径。

function main()
circle_position1 = [0,0]; %第一个圆圆心位置
circle_radius1=1;%第一个圆半径
circle_position2 = [3,0];%第二个圆圆心位置
circle_radius2 = 2;%第二个圆半径
plotcircle(circle_position1, circle_radius1,'b');% 'b'表示蓝色,'r'表示红色,也可以'w'表示白色
hold on
plotcircle(circle_position2, circle_radius2,'r');% 'b'表示蓝色,'r'表示红色,也可以'w'表示白色
end
function plotcircle(circle_position, circle_radius, circle_color)
x0 = circle_position(1);
y0 = circle_position(2);
theta = linspace(0,2*pi,101);%这里注意生成角度时一定要是linspace,不然有缺陷
x = x0 + circle_radius*cos(theta);
y = y0 + circle_radius*sin(theta);
fill(x,y,circle_color);
axis equal
end

最终效果如图:

img

相切的圆主要就是要计算好圆心的位置,使得两个圆心距离等于两个半径之和。

theta=-2*pi:0.01:2*pi;
x1=r1*sin(theta)+a;
y1=r1*cos(theta)+b;
x2=r2*sin(theta)+c;
y2=r2*cos(theta)+d;
plot(x1,y1)           %----以(a,b)为圆心画半径为r1的圆
hold on
plot(x2,y2)           %----以(c,d)为圆心画半径为r2的圆

当然这个只是一种方法,还有一些像rectangle函数之类的也可以画,但是基本上满足相切条件的都可以画出来的