[pstricks] more on computed coordinates

Juergen Gilg gilg at acrotex.net
Fri Aug 8 21:03:43 CEST 2008


Dear Zbigniew,

did you try_\pstVerb_ to define some fuctions in PostScript and then use 
them within the coordinates?

Here a little example:

\pstVerb{/Xcoord   \rx\space cos 2.5 mul 4 sub  def} %

Note:  /Xcoor with a slash, not a backslash.

Here you define _Xcoord_.
Now you can insert it in the coordinates: (Xcoord, bla, bla)

Hope that helps,

Juergen

Zbigniew Nitecki wrote:
> Thanks, Juergen and Michael.  I don't know what was going on, but 
> somehow things seemed to work in the end.  But now trying a more 
> complicated but analogous version of this, I run into trouble.  I now 
> want to draw arrows from the plane tangent at (0,1,1) to z=x^2+y^2, 
> which has the
> equation z=2y-1, to the graph.  Here is my code, including some 
> function definitions (I will comment on the comments (:-) below):
> *********************************************
> \begin{pspicture}(-2.5,-3)(2.5,3.5)
> \psset{Alpha=30}
> % \psset{xunit=2cm, yunit=2cm}
> \pstThreeDCoor[xMax=2,yMax=2,zMax=3]
>
> \psplotThreeD[linecolor=gray, 
> drawStyle=xyLines,xPlotpoints=50,yPlotpoints=50]%
> (-1.5,1.5)(0,1.5){x 2 exp y 2 exp add}
> \newcommand{\zgraph}[2]{#1\space dup mul #2\space dup mul add}
> \newcommand{\zplane}[2]{#2\space 2 mul 1 sub}
> \newcommand{\thit}[2]%
> {#2\space 2.5 #2\space mul 0.0625 add %
> #1\space dup mul sub 1 sub 0.5 exp sub %
> 0.5 mul 0.125 add}
> \newcommand{\yhit}[2]{#2\space \thit{#1}{#2}\space 2 mul sub}
> \newcommand{\zhit}[2]{\zgraph{#1}{\yhit{#1}{#2}}}
> \multido{\rx=-0.9+0.4}{6}{%
> \multido{\ry=0.1+0.5}{3}{%
> % \pstThreeDDot(\rx\space,\ry\space,\zplane{\rs}{\ry})
> % \pstThreeDDot(\rx\space,\yhit{\rx}{\ry},\zhit{\rx}{\ry})
> % \pstThreeDLine[linestyle=dashed, arrows=->]%
> % (\rx\space,\ry\space,\zplane{\rs}{\ry})%
> % (\rx\space,\yhit{\rx}{\ry},\zhit{\rx}{\ry})
> }
> }
> % \pstThreeDDot(1,\yhit{1}{1},\zhit{1}{1})
>
> % \pstThreeDLine[arrows=->](0.8,1,1)(0.8,0.62,1.18)
> % \pstThreeDLine[arrows=->](1,1.5,2)(1,1.1,2.2)
> % \pstThreeDLine[arrows=->](1,1.3,1.6)(1,0.9,1.8)
> % \pstThreeDLine[arrows=->](1,1,1)(1,0.5,1.25)
> \psplotThreeD[linecolor=lightgray, drawStyle=xyLines](-1,1)(0,2){y 2 
> mul 1 sub}
> \pstThreeDDot(0,1,1)
> \end{pspicture}
> ****************************************************************************************************
> 1. When the first line inside the multido is uncommented, it works fine.
> 2. When the second line inside the multido is uncommented, I get
> *************************************************************************
> Error: /undefinedresult in --exp--
> Operand stack:
>    -0.9   0.1   0.1   -1.4975   0.5
> Execution stack:
>    %interp_exit   .runexec2   --nostringval--   --nostringval--   
> --nostringval--   2   %stopped_push   --nostringval--   
> --nostringval--   --nostringval--   false   1   %stopped_push   1813   
> 1   3   %oparray_pop   1812   1   3   %oparray_pop   1808   1   3   
> %oparray_pop   1691   1   3   %oparray_pop   --nostringval--   
> %errorexec_pop   .runexec2   --nostringval--   --nostringval--   
> --nostringval--   2   %stopped_push   --nostringval--   
> --nostringval--   --nostringval--
> Dictionary stack:
>    --dict:1084/1123(ro)(G)-- <dict:1084/1123%28ro%29%28G%29-->   
> --dict:0/20(G)-- <dict:0/20%28G%29-->   --dict:113/200(L)-- 
> <dict:113/200%28L%29-->   --dict:179/300(L)-- <dict:179/300%28L%29--> 
>   --dict:102/200(L)-- <dict:102/200%28L%29-->   --dict:56/400(L)-- 
> <dict:56/400%28L%29-->   --dict:0/10(L)-- <dict:0/10%28L%29-->   
> --dict:102/200(L)-- <dict:102/200%28L%29-->   --dict:95/200(L)-- 
> <dict:95/200%28L%29-->
> Current allocation mode is local
> Last OS error: 2
> Current file position is 187224
> GPL Ghostscript 8.57: Unrecoverable error, exit code 1
> ### FAILED to generate /tmp/altpdflatex.1535-1218220543/picturetest.pdf ()
> *************************************************************************************
> I had initially thought that trying to square \ry=-0.9 via 2 exp could 
> hang up because of the exp of a negative, so I replaced 2 exp with dup 
> mul.  This didn't help.  However, the function definitions do seem to 
> work: when I put in explicit numbers (eg, commented line immediately 
> following the multido) it works fine.
>
> I am of course not interested in placing these dots, but rather want 
> the arrows given by the third to fifth lines inside the multido.  But 
> the dot placement commands tell me that the problem is with computing 
> the coordinates from parameters \rx and \ry.  
>
> Any suggestions?
>
>
> Zbigniew Nitecki
>
> Department of Mathematics
>
> Tufts University
>
> Medford, MA 02155
>
>
> telephones:
>
> Office    (617)627-3843
>
> Dept.    (617)627-3234
>
> Dept. fax    (617)627-3966
>
> http://www.tufts.edu/~znitecki/ <http://www.tufts.edu/%7Eznitecki/>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> PSTricks mailing list
> PSTricks at tug.org
> http://tug.org/mailman/listinfo/pstricks
>   

-- 
 Jürgen Gilg
 Austr. 59
 70376 Stuttgart
-------------------------------------
 Tel       0711.59 27 88
 e-Mail    gilg at acrotex.net
 Websites  www.acrotex.net
           www.brueckenkurs-physik.de
           www.gilligan-online.de

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://tug.org/pipermail/pstricks/attachments/20080808/8ef99b6a/attachment.html 


More information about the PSTricks mailing list