请问在matlab中如何用直角坐标绘出八分之一球面,如何找寻三个方向的等高线?谢谢
1个回答
展开全部
ththeta=0:0.1:(pi/2);phi=0:0.1:(pi/2);
n=max(size(theta));
for i=1:n
for j=1:n
x(i,j)=cos(theta(j))*sin(phi(i));
y(i,j)=sin(theta(j))*sin(phi(i));
z(i,j)=(1-x(i,j).^2-y(i,j).^2).^0.5;
end
end
figure;surface(x,y,z);
view(60,30)
xlabel('x');ylabel('y');zlabel('z');
axis equal
%z方向等高线
figure;contour3(x,y,z,30);
view(60,30)
xlabel('x');ylabel('y');zlabel('z');
axis equal
%x方向等高线
figure;surface(y,z,x);
contour3(y,z,x,30);
xlabel('y');ylabel('z');zlabel('x');
axis equal
%y方向等高线
figure;surface(z,x,y);
contour3(z,x,y,30);
xlabel('z');ylabel('x');zlabel('y');
axis equal
n=max(size(theta));
for i=1:n
for j=1:n
x(i,j)=cos(theta(j))*sin(phi(i));
y(i,j)=sin(theta(j))*sin(phi(i));
z(i,j)=(1-x(i,j).^2-y(i,j).^2).^0.5;
end
end
figure;surface(x,y,z);
view(60,30)
xlabel('x');ylabel('y');zlabel('z');
axis equal
%z方向等高线
figure;contour3(x,y,z,30);
view(60,30)
xlabel('x');ylabel('y');zlabel('z');
axis equal
%x方向等高线
figure;surface(y,z,x);
contour3(y,z,x,30);
xlabel('y');ylabel('z');zlabel('x');
axis equal
%y方向等高线
figure;surface(z,x,y);
contour3(z,x,y,30);
xlabel('z');ylabel('x');zlabel('y');
axis equal
追问
非常感谢你的回答,再请问下再编程画八分之一球面时能不能不用极坐标的方法,用直角坐标行吗?就是说编写直角坐标下的球面方程,谢谢
追答
warning off;
for i=1:101
for j=1:101
x(i,j)=(i-1)./100;
y(i,j)=(j-1)./100;
z(i,j)=(1-x(i,j).^2-y(i,j).^2).^0.5;
z(i,j)=abs(z(i,j))*(isreal(z(i,j)))/(isreal(z(i,j)));
end
end
figure;h=surface(x,y,z);
set(h,'edgecolor','none');
view(60,30)
xlabel('x');ylabel('y');zlabel('z');
axis equal
%z方向等高线
figure;contour3(x,y,z,30);
view(60,30)
xlabel('x');ylabel('y');zlabel('z');
axis equal
%x方向等高线
figure;surface(y,z,x);
contour3(y,z,x,30);
xlabel('y');ylabel('z');zlabel('x');
axis equal
%y方向等高线
figure;surface(z,x,y);
contour3(z,x,y,30);
xlabel('z');ylabel('x');zlabel('y');
axis equal
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询