计算机实习报告
一、趣味题
彩色的圆环:
分析图形可知,一共有 n 个同心圆,外面大圆 n 等分,然后从每个等分点作所有
同心圆的两条切线。如果用极坐标表示,可以很容易求解切点,代码如下所示:
n=10; %同心圆数量
m=40; %等分点数
R=1; %外圆半径
s=0:0.01*pi:2*pi; %控制圆的光滑程度的极坐标角度
t=0:2*pi/m:2*pi; %等分点极坐标角度
x0=R*cos(t);y0=R*sin(t); %等分点直角坐标
color=['b','r','c','g','m','y']; %画图颜色
lc=length(color); %颜色数量长度,超出后从头开始
for i=1:n %开始同心圆循环
r=R/n*i; %当前同心圆半径
a=acos(r/R); %切线与圆心线角度(弧度制)
x1=r*cos(t-a);y1=r*sin(t-a); %任意等分点相对当前同心圆的第一个切点
x2=r*cos(t+a);y2=r*sin(t+a); %任意等分点相对当前同心圆的第二个切点
plot(r*cos(s),r*sin(s),color(mod(i,lc)+1));hold on; %画同心圆
for j=1:m %对每一个等分点循环
plot([x0(j),x1(j)],[y0(j),y1(j)],color(mod(i,lc)+1));hold on;
%第一条切线
plot([x0(j),x2(j)],[y0(j),y2(j)],color(mod(i,lc)+1)); hold on;
%第二条切线
end
end
axsi equal; %横纵坐标比例一致
实验绘图结果如下图所示: