两垂直圆连线形成的面

曾在网看到一个有趣的图,对两个垂直的圆进行连线形成曲面,找不到原图了,尝试采用MATLAB进行绘制。一般的曲线进行连线都可以形成有趣的曲面。

绘制两个相互垂直的圆

两个圆,暂取圆心为坐标系原点,半径为20。

\[x^2+y^2=r^2 \]

\[y^2+z^2=r^2 \]

h1 = 0; % 高度
r1 = 20;  %半径
pos1 = [0,0]; % 圆心位置
tt=0:0.02:(2*pi);  % 圆滑性设置
tt=[tt,0];
plot3(pos1(1)+r1*sin(tt),pos1(2)+r1*cos(tt), h1*ones(size(tt)),'LineWidth',1.5)
axis([-20 20 -20 20 -20 20])
axis square
hold on;
h2 = 0;
r2 = 20;
pos2 = [0,0];
phaseT = -pi/4;
plot3(h2*ones(size(tt)),pos2(1)+r2*sin(tt),pos2(2)+r2*cos(tt),'LineWidth',1.5);

垂直两圆

圆上连线

设置两个起始点相位差未0,间距随意,依次连线得到一个曲面。

连线图

for ii =1:length(tt)
    x1 = pos1(1)+r1*sin(tt(ii));
    y1 = pos1(2)+r1*cos(tt(ii));
    z1 = h1*ones(size(tt(ii)));
    
    x2 = h2*ones(size(tt(ii)));
    y2 = pos2(1)+r2*sin(tt(ii)+phaseT);
    z2 = pos2(2)+r2*cos(tt(ii)+phaseT);
    hold on
    plot3([x1,x2],[y1,y2],[z1,z2],'b');
%     pause(0.05);
end

讨论

改变起始点位置

\[\phi=\pi/4 \]

pi/4

\[\phi=\pi/2 \]

pi/2

改变两圆直径

\[r_1=20 \quad r_2=15 \]

r20r15

后续

后续还可以做成绘制动画,或者分析不同的的形状连线图。

对于有趣的连线图还可以继续挖掘。

posted on 2021-01-13 18:06  MultiSimOpt  阅读(197)  评论(0)    收藏  举报

导航