这个怎么弄的啊?曲面表达式怎么弄得啊?
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/09/20 17:59:31
这个怎么弄的啊?曲面表达式怎么弄得啊?
曲面表达式不知道怎么求,但是可以画出来
clear
L=120;D=50;d=2.5;hL=L/2;R=D/2; %木板长;宽;腿木条宽;半长;圆桌面半径
ye=-R+d/2:d:R-d/2; xe=sqrt(R^2-ye.^2); %折叠点的y坐标,x坐标,各20个
legL=hL-xe;hH=legL(1)/2;ddeg=2; %腿长度,20个;最长腿半长; 角度增量
Tx=[xe -xe;xe -xe];Tx=Tx(:);Tz=zeros(size(Tx)); %桌面数据
Ty=[ye-d/2 fliplr(ye)+d/2;ye+d/2 fliplr(ye)-d/2];Ty=Ty(:);
legx=[hL*ones(size(xe));hL*ones(size(xe));xe;xe]; %桌腿数据
legy=[ye-d/2;ye+d/2;ye+d/2;ye-d/2];legz=zeros(size(legx));
zhoux=[hL-legL(1)/2;hL-legL(1)/2];zhouy=[-R R];zhouz=[0;0]; %钢筋轴数据
yb=linspace(ye(1),ye(end),20);xb=sqrt(R^2-yb.^2);
Bx=hL*ones(size(xb)); By=yb; Bz=zeros(size(xb)); %腿尖曲线数据
BBx=[-Bx;-Bx],BBy=[By;By],BBz=[Bz;Bz];
figure(1),clf;hold on
h1=patch(Tx,Ty,Tz,'facecolor',[1 0.5 0],'edgecolor',[1 1 1]);%画桌面
h2=patch(legx,legy,legz,'facecolor',[1 0.5 0],'edgecolor',[1 1 1]);%画桌腿
h3=patch(-legx,legy,legz,'facecolor',[1 0.5 0],'edgecolor',[1 1 1]);%画桌腿
h4=plot3(zhoux,zhouy,zhouz,'c');h5=plot3(-zhoux,zhouy,zhouz,'c');%画钢筋轴
h6=plot3(Bx,By,Bz,'k');h7=plot3(-Bx,By,Bz,'k');%腿尖曲线
h8=mesh(BBx,BBy,BBz);
hold off;view(3);axis equal;axis([-hL hL -R R -2*hH 0]);
for deg=0:ddeg:75 %最长桌腿相对桌面折叠角度
zz=-hH*sind(deg);xz=xe(1)+hH*cosd(deg); %钢筋轴,z坐标和x坐标
alldeg=atan2(-zz*ones(size(xe)),xz-xe); %每个条腿折叠角度,20个
allx=legL.*cos(alldeg)+xe; %每条腿末端x坐标,20个
allz=-legL.*sin(alldeg); %每条腿末端z坐标,20个
alldeg2=atan2(-zz*ones(size(xb)),xz-xb);
Bx=(hL-xb).*cos(alldeg2)+xb;Bz=-(hL-xb).*sin(alldeg2);%腿尖曲线x数据
minz=min(Bz); %最低腿z坐标,桌子当前高度
legx=[allx;allx;xe;xe]; %桌腿数据
legz=[allz;allz;zeros(size(allz));zeros(size(allz))]
BBx=[BBx;-Bx];BBy=[BBy;By];BBz=[BBz;Bz];
set(h2,'XData',legx,'ZData',legz);set(h3,'XData',-legx,'ZData',legz);
set(h4,'XData',[xz;xz],'ZData',[zz;zz]);
set(h5,'XData',-[xz;xz],'ZData',[zz;zz]);
set(h6,'XData',Bx,'ZData',Bz);set(h7,'XData',-Bx,'ZData',Bz);
set(h8,'XData',BBx,'YData',BBy,'ZData',BBz);
pause(0.1);drawnow;
end
caochang=sqrt((xe-xe(1)).^2+hH.^2-2*hH.*(xe-xe(1)).*cos(alldeg))-(legL-hH);
clear
L=120;D=50;d=2.5;hL=L/2;R=D/2; %木板长;宽;腿木条宽;半长;圆桌面半径
ye=-R+d/2:d:R-d/2; xe=sqrt(R^2-ye.^2); %折叠点的y坐标,x坐标,各20个
legL=hL-xe;hH=legL(1)/2;ddeg=2; %腿长度,20个;最长腿半长; 角度增量
Tx=[xe -xe;xe -xe];Tx=Tx(:);Tz=zeros(size(Tx)); %桌面数据
Ty=[ye-d/2 fliplr(ye)+d/2;ye+d/2 fliplr(ye)-d/2];Ty=Ty(:);
legx=[hL*ones(size(xe));hL*ones(size(xe));xe;xe]; %桌腿数据
legy=[ye-d/2;ye+d/2;ye+d/2;ye-d/2];legz=zeros(size(legx));
zhoux=[hL-legL(1)/2;hL-legL(1)/2];zhouy=[-R R];zhouz=[0;0]; %钢筋轴数据
yb=linspace(ye(1),ye(end),20);xb=sqrt(R^2-yb.^2);
Bx=hL*ones(size(xb)); By=yb; Bz=zeros(size(xb)); %腿尖曲线数据
BBx=[-Bx;-Bx],BBy=[By;By],BBz=[Bz;Bz];
figure(1),clf;hold on
h1=patch(Tx,Ty,Tz,'facecolor',[1 0.5 0],'edgecolor',[1 1 1]);%画桌面
h2=patch(legx,legy,legz,'facecolor',[1 0.5 0],'edgecolor',[1 1 1]);%画桌腿
h3=patch(-legx,legy,legz,'facecolor',[1 0.5 0],'edgecolor',[1 1 1]);%画桌腿
h4=plot3(zhoux,zhouy,zhouz,'c');h5=plot3(-zhoux,zhouy,zhouz,'c');%画钢筋轴
h6=plot3(Bx,By,Bz,'k');h7=plot3(-Bx,By,Bz,'k');%腿尖曲线
h8=mesh(BBx,BBy,BBz);
hold off;view(3);axis equal;axis([-hL hL -R R -2*hH 0]);
for deg=0:ddeg:75 %最长桌腿相对桌面折叠角度
zz=-hH*sind(deg);xz=xe(1)+hH*cosd(deg); %钢筋轴,z坐标和x坐标
alldeg=atan2(-zz*ones(size(xe)),xz-xe); %每个条腿折叠角度,20个
allx=legL.*cos(alldeg)+xe; %每条腿末端x坐标,20个
allz=-legL.*sin(alldeg); %每条腿末端z坐标,20个
alldeg2=atan2(-zz*ones(size(xb)),xz-xb);
Bx=(hL-xb).*cos(alldeg2)+xb;Bz=-(hL-xb).*sin(alldeg2);%腿尖曲线x数据
minz=min(Bz); %最低腿z坐标,桌子当前高度
legx=[allx;allx;xe;xe]; %桌腿数据
legz=[allz;allz;zeros(size(allz));zeros(size(allz))]
BBx=[BBx;-Bx];BBy=[BBy;By];BBz=[BBz;Bz];
set(h2,'XData',legx,'ZData',legz);set(h3,'XData',-legx,'ZData',legz);
set(h4,'XData',[xz;xz],'ZData',[zz;zz]);
set(h5,'XData',-[xz;xz],'ZData',[zz;zz]);
set(h6,'XData',Bx,'ZData',Bz);set(h7,'XData',-Bx,'ZData',Bz);
set(h8,'XData',BBx,'YData',BBy,'ZData',BBz);
pause(0.1);drawnow;
end
caochang=sqrt((xe-xe(1)).^2+hH.^2-2*hH.*(xe-xe(1)).*cos(alldeg))-(legL-hH);