home *** CD-ROM | disk | FTP | other *** search
- % TeXdraw toolbox macros, useful for extended TeXdraw commands
-
- % $Id: txdtools.tex,v 1.8 1993/04/10 04:12:47 kabal Exp $
-
- % Copyright (C) 1991,1992 Peter Kabal
-
- % The routines in this file are provided free of charge without
- % warranty of any kind. Note that the TeXdraw routines are copyrighted.
- % They may be distributed freely provided that the recipients also
- % acquire the right to distribute them freely. The notices to this
- % effect must be preserved when the files are distributed.
-
- % Peter Kabal
- % Department of Electrical Engineering
- % McGill University
- % 3480 University
- % Montreal, Quebec
- % Canada H3A 2A7
-
- % kabal@TSP.EE.McGill.CA
- \chardef\catamp=\the\catcode`\@
- \catcode`\@=11
- \def\realadd #1#2#3{\dimen0=#1pt
- \dimen2=#2pt
- \advance \dimen0 by \dimen2
- \edef #3{\expandafter\c@lean\the\dimen0}}
- \def\realdiv #1#2#3{\dimen0=#1pt
- \t@counta=\dimen0
- \dimen0=#2pt
- \t@countb=\dimen0
- \intdiv \t@counta \t@countb #3}
- \def\lenhyp #1#2#3{\t@counta=#1%
- \multiply \t@counta by \t@counta
- \t@countb=#2%
- \multiply \t@countb by \t@countb
- \advance \t@counta by \t@countb
- \sqrtnum \t@counta #3}
- \let\bk=\t@counta
- \let\bn=\t@countb
- \let\xval=\t@countc
- \def\sqrtnum #1#2{\xval=#1%
- \bk=\xval
- \loop
- \bn=\xval
- \divide \bn by \bk
- \advance \bn by \bk
- \advance \bn by 1
- \divide \bn by 2
- \ifnum \bn < \bk
- \bk=\bn
- \repeat
- #2=\bn}
- \def\currentpos #1#2{\t@pixa=\x@pix
- \advance \t@pixa by -\x@segoffpix
- \pixtocoord \t@pixa #1
- \t@pixa=\y@pix
- \advance \t@pixa by -\y@segoffpix
- \pixtocoord \t@pixa #2}
- \def\vectlen (#1 #2)(#3 #4)#5{\getpos (#1 #2)\x@arga\y@arga
- \getpos (#3 #4)\x@argb\y@argb
- \coordtopix \x@arga \t@pixa
- \coordtopix \x@argb \t@pixb
- \advance \t@pixb by -\t@pixa
- \coordtopix \y@arga \t@pixc
- \coordtopix \y@argb \t@pixd
- \advance \t@pixd by -\t@pixc
- \lenhyp \t@pixb \t@pixd \t@pixc
- \pixtocoord \t@pixc #5}
- \def\cossin (#1 #2)(#3 #4)#5#6{\getpos (#1 #2)\x@arga\y@arga
- \getpos (#3 #4)\x@argb\y@argb
- \coordtopix \x@arga \t@pixa
- \coordtopix \x@argb \t@pixb
- \advance \t@pixb by -\t@pixa
- \coordtopix \y@arga \t@pixc
- \coordtopix \y@argb \t@pixd
- \advance \t@pixd by -\t@pixc
- \lenhyp \t@pixb \t@pixd \t@pixc
- \intdiv \t@pixb\t@pixc #5%
- \intdiv \t@pixd\t@pixc #6}
- \catcode`\@=\catamp
-