[pstricks] computed coordinates

Zbigniew Nitecki zbigniew.nitecki at tufts.edu
Sun Apr 25 16:00:32 CEST 2010


I'm still confused about how to introduce computations on inputs into a macro.

I am trying to create a macro to then include in a \multido for drawing an arrow
indicating a vector field.  The following two-dimensional version works fine: I can
insert a postscript formula for the components of the last two inputs and get a reasonable
picture.
	\newcommand{\vectorfieldtwo}[8]{
			\multido{\rx=#1+#2}{#3}{%
				\multido{\ry=#4+#5}{#6}{%
					\psline{->}(!\rx\space \ry)(!\rx\space #7 add \ry\space #8 add)
						}}
				}%2-dim vectorfield: x starts at #1, increments by #2, #3 iterations;
				%y starts at #4, increments by #5, #6 iterations;
				%#7, #8 components of vector (in terms of \rx & \ry, postscript style

The following also works in 3D, but I am giving both endpoints of the vector explicitly:
	\newcommand{\vecThree}[6]{\pstThreeDLine[arrows=->]%
		(#1\space,#2\space,#3\space)(#4\space,#5\space,#6\space)
	}
		%arrow from (#1,#2,#3) to (#4,#5,#6)
However, when I try to do the following, which uses as input the components of the vector
instead of explicit coordinates for its endpoint, I get an error message (the error is the same
whether I use an exclamation before the coordinates or not):

	\newcommand{\vecatThree}[6]{\pstThreeDLine[arrows=->]%
		(#1\space  #2\space  #3\space)
		(#1\space #4\space add #2\space #5\space add #3\space #6\space add)
	}
		% arrow pinned to (#1,#2,#3) with components (#4,#5,#6)

> Runaway argument?
> \@nil \edef \pst at coors {\pst at coor \pst at coors }\@ifnextchar ({\pst@@getcoors \ET
> C.
> ! Paragraph ended before \cartesianIIID at coor was complete.
> <to be read again> 
>                    \par 
> l.41 


I would like, ultimately, to insert such a macro either into a multido as in the 2-dim example,
or to do something more sophisticated:  given a surface plotted via say parametricplotThreeD,
to insert a formula for the entries #1, #2, and #3 as well (to plot the vectors only along the points
of the surface).  

I would also prefer to use the algebraic rather than postscript form for formulas, but that is a minor
and separate matter.

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/

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://tug.org/pipermail/pstricks/attachments/20100425/36740a5d/attachment.html>


More information about the PSTricks mailing list