使用Matlab画出圆台圆锥圆柱5页

上传人:文库****9 文档编号:175185636 上传时间:2021-03-22 格式:DOC 页数:5 大小:23KB
返回 下载 相关 举报
使用Matlab画出圆台圆锥圆柱5页_第1页
第1页 / 共5页
使用Matlab画出圆台圆锥圆柱5页_第2页
第2页 / 共5页
使用Matlab画出圆台圆锥圆柱5页_第3页
第3页 / 共5页
使用Matlab画出圆台圆锥圆柱5页_第4页
第4页 / 共5页
使用Matlab画出圆台圆锥圆柱5页_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《使用Matlab画出圆台圆锥圆柱5页》由会员分享,可在线阅读,更多相关《使用Matlab画出圆台圆锥圆柱5页(5页珍藏版)》请在金锄头文库上搜索。

1、用Matlab画圆柱圆台圆锥自己建一个M文件,命名任意,如tu.m在命令窗口输入:tu%以下为tu.m文件clcclear all%圆柱X,Y,Z=cylinder(15.7,20);h=1.22*Z;surf(X,Y,h);hold on%圆台a=25/180*pi;%可修改b=12.06/180*pi;%可修改r=3.2;%可修改h1=r*sin(a+b)/sin(a-b)*sin(a);%h1=0.66;X1=0 0 1.22;%底面中心坐标X2=0 0 1.22+h1;%顶面中心坐标L2=15.7-2.6/tan(a);r=15.7 L2;n=20;cyl_color=b;closed

2、=1;lines=1;cone,EndPlate1,EndPlate2 = Cone(X1,X2,r,n,cyl_color,closed,lines)%调用圆台的函数%圆锥X2,Y2,Z2=cylinder(L2:-0.2:0);h2=1.5;%可修改Z2=h2*Z2;Z2=Z2+ones(size(Z2)*(1.22+h1);surf(X2,Y2,Z2);grid on%r=0:0.1:3.2;R=0:0.1:15.7;%alpha=0:pi/20:2*pi;%角度0,2*pi%x=R*cos(alpha);%y=R*sin(alpha);%a=39.0;b=12.06;%h=1.22+R

3、.*tan(b)+r.*sin(a);%x,y=meshgrid(-4:0.5:4);%surf(h)新建一个M文件,如下命名为Cone.Mfunction Cone,EndPlate1,EndPlate2 = Cone(X1,X2,R,n,cyl_color,closed,lines)% This function constructs a cylinder connecting two center points % % Usage :% Cone,EndPlate1,EndPlate2 = Cone(X1,X2,R,n,cyl_color,closed,lines)% % Cone-Ha

4、ndle of the cone% EndPlate1-Handle of the Starting End plate% EndPlate2-Handle of the Ending End plate% X1 and X2 are the 3x1 vectors of the two points% R is the radius of the cylinder/cone R(1) = start radius, R(2) = end radius% n is the no. of elements on the cylinder circumference (more- refined)

5、% cyl_color is the color definition like r,b,0.52 0.52 0.52% closed=1 for closed cylinder or 0 for hollow open cylinder% lines=1 for displaying the line segments on the cylinder 0 for only% surface% % Typical Inputs% X1=10 10 10;% X2=35 20 40;% r=1 5;% n=20;% cyl_color=b;% closed=1;% % NOTE: There i

6、s a MATLAB function cylinder to revolve a curve about an% axis. This Cylinder provides more customization like direction and etc%圆台的函数,文件名为Cone.m% Calculating the length of the Conelength_cyl=norm(X2-X1);% Creating 2 circles in the YZ planet=linspace(0,2*pi,n);xa2=R(1)*cos(t);xa3=R(1)*sin(t);xb2=R(2

7、)*cos(t);xb3=R(2)*sin(t);% Creating the points in the X-Directionx1=0 length_cyl;% Creating (Extruding) the cylinder points in the X-Directionsxx1=repmat(x1,length(xa2),1);xx2=xa2 xb2;%xx2=repmat(x2,1,2);xx3=xa3 xb3;%xx3=repmat(x3,1,2);% Drawing two filled cirlces to close the cylinderif closed=1 ho

8、ld on EndPlate1=fill3(xx1(:,1),xx2(:,1),xx3(:,1),r); EndPlate2=fill3(xx1(:,2),xx2(:,2),xx3(:,2),r);end% Plotting the cylinder along the X-Direction with required length starting% from OriginCone=mesh(xx1,xx2,xx3);% Defining Unit vector along the X-directionunit_Vx=1 0 0;% Calulating the angle betwee

9、n the x direction and the required direction% of Cone through dot productangle_X1X2=acos( dot( unit_Vx,(X2-X1) )/( norm(unit_Vx)*norm(X2-X1) )*180/pi;% Finding the axis of rotation (single rotation) to roate the Cone in% X-direction to the required arbitrary direction through cross productaxis_rot=c

10、ross(1 0 0,(X2-X1) );% Rotating the plotted Cone and the end plate circles to the required% anglesif angle_X1X2=0 % Rotation is not needed if required direction is along X rotate(Cone,axis_rot,angle_X1X2,0 0 0) if closed=1 rotate(EndPlate1,axis_rot,angle_X1X2,0 0 0) rotate(EndPlate2,axis_rot,angle_X

11、1X2,0 0 0) endend% Till now Cone has only been aligned with the required direction, but% position starts from the origin. so it will now be shifted to the right% positionif closed=1 set(EndPlate1,XData,get(EndPlate1,XData)+X1(1) set(EndPlate1,YData,get(EndPlate1,YData)+X1(2) set(EndPlate1,ZData,get(

12、EndPlate1,ZData)+X1(3) set(EndPlate2,XData,get(EndPlate2,XData)+X1(1) set(EndPlate2,YData,get(EndPlate2,YData)+X1(2) set(EndPlate2,ZData,get(EndPlate2,ZData)+X1(3)endset(Cone,XData,get(Cone,XData)+X1(1)set(Cone,YData,get(Cone,YData)+X1(2)set(Cone,ZData,get(Cone,ZData)+X1(3)% Setting the color to the

13、 Cone and the end platesset(Cone,AmbientStrength,1,FaceColor,cyl_color,FaceLighting,gouraud);%,EdgeColor,none)if closed=1 set(EndPlate1 EndPlate2,AmbientStrength,1,FaceColor,cyl_color,FaceLighting,gouraud);%,EdgeColor,none)else EndPlate1=; EndPlate2=;end% If lines are not needed making it disapearif lines=0 set(Cone,EdgeAlpha,0)end%shading faceted % faceted flat interp;%camlight; %light;%lighting gouraud; %flat gouraud phong nonematerial shiny; %shiny dull metal%colormap(bone)%camlight headlight;%light(Style,local,Position,720 0 500);%light(Style,local,Position,0 480 500);参考文献:http:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号