function sf3d(n, a) u=[-pi:.05:pi]; v=[-pi/2:.05:pi/2]; nu=length(u); nv=length(v); for i=1:nu for j=1:nv raux1=abs(1/a(1)*abs(cos(n(1).*u(i)/4))).^n(3)+abs(1/a(2)*abs(sin(n(1)*u(i)/4))).^n(4); r1=abs(raux1).^(-1/n(2)); raux2=abs(1/a(1)*abs(cos(n(1)*v(j)/4))).^n(3)+abs(1/a(2)*abs(sin(n(1)*v(j)/4))).^n(4); r2=abs(raux1).^(-1/n(2)); x(i,j)=r1*cos(u(i))*r2*cos(v(j)); y(i,j)=r1*sin(u(i))*r2*cos(v(j)); z(i,j)=r2*sin(v(j)); endfor; endfor; mesh(x,y,z); endfunction;