IMO, surf()
совсем не удобен для пользователя. Код surf(x+3,y-2,z) % sphere centered at (3,-2,0)
нелогичен (surf(x-1,y+2,0)
соответствует математике).
В любом случае, я бы рекомендовал использовать ellipsoid()
. Поскольку сфера - это особый случай эллипсоида, вы можете легко понять его, и вам не нужно иметь дело с surf()
, посмотрите на http://www.mathworks.com/help/matlab/ref/ellipsoid.html
Простой пример:
r=5;
[x,y,z]=ellipsoid(1,2,3,r,r,r,20);
surf(x, y, z,'FaceColor','y', 'FaceAlpha', 0.2);
axis equal;
box on; xlabel('x-axis (m)'); ylabel('y-axis (m)'); zlabel('z-axis (m)');