Я хочу построить каркас сердечной формы, как показано на следующем рисунке (источник):
Я попытался сделать это, используя эту программу MATLAB:
n=100;
x=linspace(-3,3,n);
y=linspace(-3,3,n);
z=linspace(-3,3,n);
[X,Y,Z]=ndgrid(x,y,z);
F=((-(X.^2) .* (Z.^3) -(9/80).*(Y.^2).*(Z.^3)) + ((X.^2) + (9/4).* (Y.^2) + (Z.^2)-1).^3);
isosurface(F,0)
lighting phong
caxis
axis equal
colormap('flag');
view([55 34]);
Но я не получил желаемую форму рамки, как показано на рисунке.
Я определил проблему: для создания каркаса мы обычно используем команду mesh()
. Но это построение графика позволяет нам построить функцию двух переменных, таких как z=f(x,y)
. Но моя программа использует три переменные: F(x,y,z)
.
Как я могу решить проблему?