figurea = 15;b = 10;c = 5;k = 5;n = 2^k-1;theta = pi*(-n:2:n)/n;phi = (pi/2)*(-n:2:n)'/n;X = a*cos(phi)*cos(theta);Y = b*cos(phi)*sin(theta);Z = c*sin(phi)*ones(size(theta));surf(X,Y,Z,'FaceColor','interp',... 'EdgeColor','none',... 'FaceLighting','phong')axis tightcamlight leftalpha(.33) % 产生透视效果这是在7.1.上画的图:
Syntax
[x,y,z] = ellipsoid(xc,yc,zc,xr,yr,zr,n)
[x,y,z] = ellipsoid(xc,yc,zc,xr,yr,zr)
ellipsoid(axes_handle,...)
ellipsoid(...)
Description
[x,y,z] = ellipsoid(xc,yc,zc,xr,yr,zr,n) generates a surface mesh described by three n+1-by-n+1 matrices, enabling surf(x,y,z) to plot an ellipsoid with center(xc,yc,zc) and semi-axis lengths (xr,yr,zr).
[x,y,z] = ellipsoid(xc,yc,zc,xr,yr,zr) uses n = 20.
ellipsoid(axes_handle,...) plots into the axes with handle axes_handle instead of the current axes (gca).
ellipsoid(...) with no output arguments plots the ellipsoid as a surface.
Algorithms
ellipsoid generates the data using the following equation:
Note that ellipsoid(0,0,0, .5,.5,.5) is equivalent to a unit sphere.
Examples
Generate ellipsoid with size and proportions of a standard U.S. football:
[x, y, z] = ellipsoid(0,0,0,5.9,3.25,3.25,30); surfl(x, y, z) colormap copper axis equal