使用editor区域,建立.m文件,画出一个具有25*25个小平面的surf格式的有颜色的球面,及其在x-z平面、x-y平面的投影,以及球面以x轴为轴线旋转30°的图像;以y轴为轴线旋转45°的图像。画在一个图像内。
%画球
[alpha,beta]=meshgrid(0:2*pi/25:2*pi);
r=3;
center=[4 5 6];
x=r*sin(beta).*cos(alpha)+center(1);
y=r*sin(beta).*sin(alpha)+center(2);
z=r*cos(beta)+center(3);
surf(x,y,z)
xlabel('x');ylabel('y');zlabel('z');
hold on
%画投影
surf(x,y,zeros(size(z)));%xy上的投影
surf(x,zeros(size(y)),z,zeros(26,26));
%计算旋转后的球心,画出旋转后的球
%绕y轴旋转,只是球心变了,相当于以(0,y,0)为球心,y为原来球心的y坐标,sqrt(x^2+y^2)
%为半径旋转相应的角度,因此绕y轴旋转45°后的球心位置是
deg0=acos(center(3)/sqrt(center(1)^2+center(3)^2));%原来球心与yz平面的夹角
deg1=deg0+pi/4;%旋转45°后与yz的夹角
center1(1)=sqrt(center(1)^2+center(3)^2)*sin(deg1);
center1(2)=center(2);
center1(3)=sqrt(center(1)^2+center(3)^2)*cos(deg1);
x1=r*sin(beta).*cos(alpha)+center1(1);
y1=r*sin(beta).*sin(alpha)+center1(2);
z1=r*cos(beta)+center1(3);
surf(x1,y1,z1)
%原点到球心的连线
plot3([0 center(1)],[0 center(2)],[0 center(3)]);
plot3([0 center1(1)],[0 center1(2)],[0 center1(3)]);
%球心绕y轴旋转的轨迹
ry=sqrt(center(1)^2+center(3)^2);
ralpha=0:0.2:2*pi;
xx=ry*sin(ralpha);
yy=ones(size(ralpha))*center(2);
zz=ry*cos(ralpha);
plot3(xx,yy,zz,'-')
不同视角的图形