<font color='black' size='2' face='Arial, Helvetica, sans-serif'>

<div> <font size="2">>Working with your example, the range seems to have no effect on the plot  </font><br>

</div>





<div> <span id="result_box" class="short_text" lang="en"><span class="">That's right</span></span>
</div>



<div> <font size="2">>Are there some extra parameters that control the center of the ball?<br>
No.<br>
The command must be modified to introduce the possibility of moving the center. Thus with the translate option and the command thus modified (</font><br>
<font size="2"><span id="result_box" class="short_text" lang="en"><span class="">I attach the file as well.)<br>
<br>
</span></span></font>
<div class="envelope" style="float: none;" align="left"><img src="cid:AOLP.1257300" id="TIE.1257300" style="margin: 5px; vertical-align: middle;" alt="EXPxy-2.png" class="AOLInlineImage" title="EXPxy-2.png" width="275"></div>

<div><span><br>
</span></div>
<font size="2"><span id="result_box" class="short_text" lang="en"><span class="">\documentclass{article}<br>
\usepackage{pst-solides3d}<br>
\makeatletter<br>
\define@key[psset]{pst-solides3d}{translation}{\def\pst@solides@translation{#1 }}<br>
\psset[pst-solides3d]{translation=0 0}<br>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br>
%% la macro \psSurface<br>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br>
\def\psSurface{\@ifnextchar*{\@startrue\psSurface@i}{\@starfalse\psSurface@i*}}<br>
\def\psSurface@i*{\@ifnextchar[{\psSurface@ii}{\psSurface@ii[]}}<br>
\def\psSurface@ii[#1](#2,#3)(#4,#5)#6{%<br>
  \pst@killglue%<br>
  \begingroup%<br>
  \psset{axisemph=\small,planmarks,#1}%<br>
  \init@pscode%<br>
  \addto@pscode{<br>
    1 setlinejoin<br>
    /TRANSLATE {\pst@solides@translation} def<br>
    \tx@optionssolides<br>
    SolidesDict begin<br>
    /CX 0 def /CY 0 def /CZ 0 def<br>
    TRANSLATE /tY exch def /tX exch def<br>
    /base [ #2 #4 #3 #5 ] def<br>
    \ifPst@algebraic<br>
      /fonction (#6) tx@AlgToPs begin AlgToPs end cvx def<br>
    \else<br>
      /fonction  { #6 } def<br>
    \fi<br>
    /f {2 dict begin<br>
      /y exch def<br>
      /x exch def<br>
      fonction end<br>
    } def<br>
/newSURFACE* {<br>
7 dict begin<br>
   /f_surface exch def<br>
   [[/nx /ny] [6 6] [6 8] [10 8] [16 12] [16 36]] gestionsolidmode<br>
   nx isinteger not {<br>
       %% alors nx est un dx<br>
       /nx xmax xmin sub nx div cvi store<br>
   } if<br>
   ny isinteger not {<br>
       %% alors ny est un dy<br>
       /ny ymax ymin sub ny div cvi store<br>
   } if<br>
   /dy ymax ymin sub ny div def %% le pas sur y<br>
   /dx xmax xmin sub nx div def %% le pas sur x<br>
   %% ny = nb de meridiens<br>
   %% nx = nb d horizontales<br>
   /r exch def<br>
   /F [<br>
       %% 1er etage<br>
       1 1 ny {<br>
           /i exch def<br>
           [0 i i ny mod 1 add]<br>
       } for<br>
       %% etages suivants<br>
       0 1 nx 2 sub {<br>
           /j exch def<br>
           1 1 ny {<br>
               /i exch def<br>
               [i      j ny mul add<br>
               i ny add j ny mul add<br>
               i ny mod ny add 1 add j ny mul add<br>
               i ny mod 1 add j ny mul add]<br>
           } for<br>
      } for<br>
   ] def<br>
   %% tableau des sommets<br>
   /S [<br>
       0 0 0 0 f_surface<br>
       1 1 nx {<br>
           /j exch def<br>
           1 1 ny {<br>
             /i exch def<br>
             /theta i 360 mul ny div def<br>
             theta cos r j mul nx div mul tX add<br>
             theta sin r j mul nx div mul tY add<br>
             2 copy f_surface<br>
          } for<br>
       } for<br>
   ] def<br>
   S F generesolid<br>
end<br>
} def<br>
/pst-surface* {<br>
   r<br>
   ngrid length 2 ge {<br>
      [ngrid 0 get ngrid 1 get]<br>
   } {<br>
      ngrid length 1 eq {<br>
         [ngrid 0 get dup]<br>
      } ifelse<br>
   } ifelse<br>
   {f} newSURFACE*<br>
   solidbiface { dup videsolid } if<br>
   gere_pstricks_opt<br>
} def<br>
    pst-surface*<br>
    end<br>
  }% fin du code ps<br>
  \@starfalse<br>
  \ifPst@axesboxed\gridIIID(#2,#4)(#3,#5)\fi<br>
  \ifPst@solidmemory\else%<br>
    \ifpsshadow \pst@closedshadow \fi<br>
    \ifdim\psk@border\p@>\z@ \pst@addborder \fi<br>
    \psk@fillstyle<br>
    \pst@stroke<br>
    \ifpsdoubleline \pst@doublestroke \fi<br>
    \ifshowpoints\pst@OpenShowPoints\fi<br>
    \use@pscode%<br>
  \fi%<br>
  \endgroup%<br>
  \ignorespaces}<br>
\makeatother<br>
\begin{document}<br>
\begin{center}<br>
\begin{pspicture}(-5,-4)(6,10)<br>
\psframe(-5,-4)(6,10)<br>
\psset{viewpoint=50 30 30 rtp2xyz,Decran=200,lightsrc=viewpoint}<br>
\psSolid[object=grille,base=-1 1 -1 1,action=draw]%<br>
\axesIIID(0,0,0)(2,2,1)<br>
\psSurface*[<br>
   fillcolor=cyan,<br>
   r=1,<br>
   ngrid=.25 .25,incolor=yellow,grid](-1,-1)(1,1){%<br>
   Euler x y mul exp }<br>
\psSolid[object=cylindre,r=1,h=2,action=draw,ngrid=1 18]<br>
\psPoint(0,0,1){O}<br>
\psPoint(0,0,3){Z}<br>
\psline{->}(O)(Z)<br>
\uput[r](Z){$z$}<br>
\end{pspicture}<br>
\end{center}<br>
<br>
\begin{center}<br>
\begin{pspicture}(-5,-4)(6,10)<br>
\psset{viewpoint=50 -30 30 rtp2xyz,Decran=100,lightsrc=viewpoint}<br>
\psSolid[object=grille,base=-2 2 -2 2,action=draw]%<br>
\axesIIID(0,0,0)(2,2,1)<br>
\psSurface*[<br>
   fillcolor=cyan,<br>
   r=1,<br>
   ngrid=.25 .25,incolor=yellow,grid,translation=0.4 0.4](-1,-1)(1,1){%<br>
   Euler x y mul exp }<br>
\psSolid[object=cylindre,r=1,h=4,action=draw,ngrid=1 18](0.4,0.4,0)<br>
\psPoint(0,0,1){O}<br>
\psPoint(0,0,5){Z}<br>
\psline{->}(O)(Z)<br>
\uput[r](Z){$z$}<br>
\psPoint(0.4,0.4,0){C}<br>
\psdot(C)<br>
\end{pspicture}<br>
\end{center}<br>
\end{document}<br>
<br>
<br>
</span></span></font>
</div>



<div style="clear:both">Manuel Luque<br>
<br>
</div>

<div> <br>

</div>



<div style="font-family:arial,helvetica;font-size:10pt;color:black">-----E-mail d'origine-----<br>

De : leon.free <leon.free@free.fr><br>

A: Graphics with PSTricks <pstricks@tug.org><br>

Envoyé le : Me, 1 Mar 2017 21:35<br>

Sujet : Re: [pstricks] 3D surface on non rectangular domain<br>

<br>

Thank you Manuel. Yes, this is close to what I'd like to do. I did not know about the r parameter for \psSurface* (I could not find it in the pst-solides3d doc). It seems it controls the radius of the domain (ball) on which the surface is drawn. Are there some extra parameters that control the center of the ball? Moreover, when using r=1 how does this interact with the plotting range (xmin,ymin)(xmax,ymax)? Working with your example, the range seems to have no effect on the plot (I even used (0,0)(0,0) instead of (-1,-1)(1,1)).
elef


----- Mail original -----
De: "Manuel Luque" <<a href="mailto:mluque5130@aol.com">mluque5130@aol.com</a>>
À: <a href="mailto:pstricks@tug.org">pstricks@tug.org</a>
Envoyé: Mercredi 1 Mars 2017 20:35:25
Objet: Re: [pstricks] 3D surface on non rectangular domain



I do not know if I understood your question correctly. Here, the domain is restricted to R (x, y) <1 

\documentclass{article} 
\usepackage{pst-solides3d} 
\begin{document} 
\begin{center} 
\begin{pspicture}(-5,-4)(6,10) 
\psframe(-5,-4)(6,10) 
\psset{viewpoint=50 30 30 rtp2xyz,Decran=200,lightsrc=viewpoint} 
\psSolid[object=grille,base=-1 1 -1 1,action=draw]% 
\axesIIID(0,0,0)(2,2,1) 
\psSurface*[ 
fillcolor=cyan, 
r=1, 
ngrid=.5 .5,incolor=yellow,grid](-1,-1)(1,1){% 
Euler x y mul exp } 
\psSolid[object=cylindre,r=1,h=2,action=draw,ngrid=1 18] 
\psPoint(0,0,1){O} 
\psPoint(0,0,3){Z} 
\psline{->}(O)(Z) 
\uput[r](Z){$z$} 
\end{pspicture} 
\end{center} 
\end{document} 



EXPxy.png





Manuel Luque 






-----E-mail d'origine----- 
De : leon.free <<a href="mailto:leon.free@free.fr">leon.free@free.fr</a>> 
A: pstricks <<a href="mailto:pstricks@tug.org">pstricks@tug.org</a>> 
Envoyé le : Me, 1 Mar 2017 15:08 
Sujet : [pstricks] 3D surface on non rectangular domain 

Hi, 
I'd like to plot the surface of a function such as exp(x*y) only for the (x,y)'s in the unit ball B = \{(x,y) \in \mathbb{R}^2 : x^2+y^2 \le 1\}. I do not want to set the value of the function outside B to some particular value (e.g. 0). Do you know if there exists some pstricks package that can make this ? 
Thanks, 
elef 
_______________________________________________ 
PSTricks mailing list 
<a href="mailto:PSTricks@tug.org">PSTricks@tug.org</a> 
<a href="http://tug.org/mailman/listinfo/pstricks" target="_blank">http://tug.org/mailman/listinfo/pstricks</a> 
archive: <a href="http://www.tug.org/pipermail/pstricks/" target="_blank">http://www.tug.org/pipermail/pstricks/</a> 

_______________________________________________
PSTricks mailing list
<a href="mailto:PSTricks@tug.org">PSTricks@tug.org</a>
<a href="http://tug.org/mailman/listinfo/pstricks" target="_blank">http://tug.org/mailman/listinfo/pstricks</a>
archive: <a href="http://www.tug.org/pipermail/pstricks/" target="_blank">http://www.tug.org/pipermail/pstricks/</a>

_______________________________________________
PSTricks mailing list
<a href="mailto:PSTricks@tug.org">PSTricks@tug.org</a>
<a href="http://tug.org/mailman/listinfo/pstricks" target="_blank">http://tug.org/mailman/listinfo/pstricks</a>
archive: <a href="http://www.tug.org/pipermail/pstricks/" target="_blank">http://www.tug.org/pipermail/pstricks/</a></div>

</font>