эллипсоид с использованием Matlab - PullRequest
0 голосов
/ 13 июля 2010

Это задание класса.Я написал несколько кодов, которые, я надеюсь, кто-то может мне помочь.

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левая часть - это часть а, а на правом изображении - эллипсоид ...

Как вы думаете, они одинаковы?

Спасибо

1 Ответ

1 голос
/ 13 июля 2010

Да, они почти одинаковые.

Вы можете проверить это, построив оба эллипсоида на одной оси, то есть после того, как вы построили первый эллипсоид, вы запускаете

[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)

Теперь вы можете вращать график (нажмите на кнопку с круговой стрелкой, затем перетащите график), и вы увидите, что два эллипсоида очень хорошо совпадают. Если бы второй был больше первого, вы бы увидели пространство между ними; если второй был меньше первого, вы бы увидели только первый, непрозрачный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...