这是课堂作业。我写了一些代码,希望有人可以帮助我。
alt text http://i32.tinypic.com/2gw9so3.jpg
这是我的代码
% --- This is optional to verify whether my parametrization is consistent with the
% --- original equation
% syms x y z p t
% ellipsoid=[2*sin(p)*cos(t),4*sin(t)*sin(p),sqrt(2)*cos(p)]
% simplify(subs((x^2/4)+(y^2/16)+(z^2/2),[x,y,z],ellipsoid))
% --- END
t=linspace(-2,2*pi,20);
s=linspace(0,pi/2,20);
[s t]=meshgrid(s,t);
x=2*cos(t).*sin(s);
y=4.*sin(s).*sin(t);
z=sqrt(2).*cos(s);
surf(x,y,z);
grid on;
xlabel('x');ylabel('y');zlabel('z'); axis equal
hold on;
% I think this is how we draw the lower half of the ellipsoid using -sqrt(2)
t=linspace(-2,2*pi,20);
s=linspace(0,pi/2,20);
[s t]=meshgrid(s,t);
x=-2.*cos(t).*sin(s); y=-4.*sin(s).*sin(t); z=-sqrt(2).*cos(s);
surf(x,y,z)
axis equal
第二种方法是使用椭球注释,这是这个问题的第二部分。
[x, y, z] = ellipsoid(0,0,0,2.0,4.0,sqrt(2),20);
surfl(x, y, z)
colormap copper
axis equal
中断图片请点击以下链接(太大)
http://i26.tinypic.com/6ye1j7.jpg 左侧是部分a,右侧图像是使用椭球...
你认为他们是一样的吗?
谢谢
答案 0 :(得分:1)
是的,他们几乎一样。
您可以通过在同一轴上绘制两个椭球来测试它,即在绘制第一个椭球后,运行
[x, y, z] = ellipsoid(0,0,0,2.0,4.0,sqrt(2),20);
sh = surfl(x, y, z); %# capture the handle, i.e. the unique identifier, of the surface
%# set color to gray, make mostly transparent
set(sh,'FaceColor',[0.5,0.5,0.5],'FaceAlpha',0.5)
现在您可以旋转绘图(单击带有圆圈箭头的按钮,然后拖动绘图),您将看到两个椭圆体非常吻合。如果第二个比第一个大,你会看到两者之间的空间;如果第二个小于第一个,你只会看到第一个不透明的。