\section{Implicit defined three dimensional function \textit{F(x,y,z)=0}} The command has the following syntax: \begin{verbatim} \psImplicitSurface[options](x0,y0,z0) \end{verbatim} The argument \texttt{(x0,y0,z0)} for the image offset is optional and preset with \texttt{(0,0,0)} The options are the same which apply to solids, and these additional ones: \begin{itemize} \item \Lkeyword{algebraic}: this option allows you to write the implicit defined function $F(x,y,z)$ in algebraic notation; \texttt{pst-algparser.pro} contains the code \texttt{AlgToPs}. \item \Lkeyword{XMinMax}: three values devided by a space: minimum maximum step; \item \Lkeyword{YMinMax}: three values devided by a space: minimum maximum step; \item \Lkeyword{ZMinMax}: three values devided by a space: minimum maximum step; \item \Lkeyword{ImplFunction}: the function $F(x,y,z)=0$ where only $F(x,y,z)$ is written in PostScript notation, or with the optional argument \Lkeyword{algebraic} in algebraic notation. \end{itemize} The internal PostScript code of \texttt{pst-implicitsurface.pro} is based on Paul Bourkes "'Polygonising a scalar field"` at \url{http://paulbourke.net/geometry/polygonise/}. \iffalse \small \begin{verbatim} \begin{animateinline}[controls,autoplay,loop, begin={\begin{pspicture}(-6,-5)(6,4)},end={\end{pspicture}}]{5} \multiframe{18}{iA=0+20}{% \psset{lightsrc=viewpoint,viewpoint=40 \iA\space 15 rtp2xyz,Decran=50} \psSolid[object=grille,base=-4 4 -4 4,ngrid=8 8,linecolor=black!10](0,0,-2) \psImplicitSurface[ XMinMax=-2.0 2.0 0.15,YMinMax=-2.0 2.0 0.15,ZMinMax=-2.0 2.0 0.15, algebraic, ImplFunction=4*x^4+4*y^4+8*y^2*z^2+4*z^4+17*x^2*y^2+17*x^2*z^2-20*x^2-20*y^2-20*z^2+17, fillcolor=cyan!20,hue=.1 .8 0.5 1, linewidth=0.01pt]% } \end{animateinline} \end{verbatim} \normalsize \begin{animateinline}[controls,autoplay,loop, begin={\begin{pspicture}(-6,-5)(6,4)}, end={\end{pspicture}}]{5} \multiframe{18}{iA=0+20}{% \psset{lightsrc=viewpoint,viewpoint=40 \iA\space 15 rtp2xyz,Decran=50} \psSolid[object=grille,base=-4 4 -4 4,ngrid=8 8,linecolor=black!10](0,0,-2) \psImplicitSurface[ XMinMax=-2.0 2.0 0.15,YMinMax=-2.0 2.0 0.15,ZMinMax=-2.0 2.0 0.15, algebraic, ImplFunction=4*x^4+4*y^4+8*y^2*z^2+4*z^4+17*x^2*y^2+17*x^2*z^2-20*x^2-20*y^2-20*z^2+17, fillcolor=cyan!20,hue=.1 .8 0.5 1, linewidth=0.01pt]% } \end{animateinline} \else \begin{LTXexample}[pos=t] \begin{pspicture}(-6,-5)(6,4) \psset{lightsrc=viewpoint,viewpoint=40 80 15 rtp2xyz,Decran=50} \psSolid[object=grille,base=-4 4 -4 4,ngrid=8 8,linecolor=black!10](0,0,-2) \psImplicitSurface[ XMinMax=-2.0 2.0 0.15,YMinMax=-2.0 2.0 0.15,ZMinMax=-2.0 2.0 0.15, algebraic, ImplFunction=4*x^4+4*y^4+8*y^2*z^2+4*z^4+17*x^2*y^2+17*x^2*z^2-20*x^2-20*y^2-20*z^2+17, fillcolor=cyan!20,hue=.1 .8 0.5 1, linewidth=0.01pt]% \end{pspicture} \end{LTXexample} \fi \begin{LTXexample}[pos=t] \begin{pspicture}(-5,-4)(5,4) \psset{lightsrc=viewpoint,viewpoint=50 90 30 rtp2xyz,Decran=50} \psSolid[object=grille,base=-4 4 -4 4,ngrid=8 8,linecolor=black!20](0,0,-1) \psImplicitSurface[%hollow, hue=1 0 0.5 1, XMinMax=-4 4 0.2,YMinMax=-4 4 0.2,ZMinMax=-4 4 0.2, algebraic, ImplFunction=1/((x+0.75)^2+y^2+z^2)+1/((x-0.75)^2+y^2+z^2)-1, fillcolor=cyan!20,linewidth=0.05pt] \end{pspicture} \end{LTXexample} \begin{LTXexample}[pos=t] \begin{pspicture}(-6,-3)(6,4) \psset{lightsrc=10 20 20 rtp2xyz,viewpoint=100 60 50 rtp2xyz,Decran=150} \pstVerb{ /RConst 1 def /rConst 0.25 def /torusImplicit { X dup mul Y dup mul add z dup mul add dup mul -2 RConst dup mul rConst dup mul add mul X dup mul Y dup mul add mul add 2 RConst dup mul rConst dup mul sub mul z dup mul mul add RConst dup mul rConst dup mul sub add } def /tripleTorus { 0 120 240 { /i exch def /X {x 1.5 i cos mul sub} def /Y {y 1.5 i sin mul sub} def torusImplicit } for mul mul 10 sub } def }% \psImplicitSurface[ ImplFunction=tripleTorus,linewidth=0.01pt, fillcolor=red!60!green!40,linecolor=black!10, lightintensity=5, XMinMax=-3 3 0.1,YMinMax=-3 3 0.1,ZMinMax=-0.5 0.5 0.1] \end{pspicture} \end{LTXexample} A lot of examples can be found here: \url{http://www-sop.inria.fr/galaad/surface/}. A list of Steiner surfaces at \url{http://www-sop.inria.fr/galaad/surface/steiner/index.html} and a list of surfaces with isolated singularities at \url{http://www-sop.inria.fr/galaad/surface/classification/index.html}. \endinput