两垂直圆连线形成的面
曾在网看到一个有趣的图,对两个垂直的圆进行连线形成曲面,找不到原图了,尝试采用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
\]

\[\phi=\pi/2
\]

改变两圆直径
\[r_1=20 \quad r_2=15
\]

后续
后续还可以做成绘制动画,或者分析不同的的形状连线图。
对于有趣的连线图还可以继续挖掘。
posted on 2021-01-13 18:06 MultiSimOpt 阅读(197) 评论(0) 收藏 举报
浙公网安备 33010602011771号