diff options
author | Karl Berry <karl@freefriends.org> | 2007-06-17 23:22:38 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2007-06-17 23:22:38 +0000 |
commit | 5c5c7843fbd37c6960799b6e1a32d5948966316c (patch) | |
tree | ea73f6b5ba799656992ebe2f34beccd2555f1342 /Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex | |
parent | f0c1f4cdb9fad83f293fd91d194538425f9f7633 (diff) |
pgf 1.18 (15jun07)
git-svn-id: svn://tug.org/texlive/trunk@4459 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex')
-rw-r--r-- | Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex | 225 |
1 files changed, 151 insertions, 74 deletions
diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex index 3f2a26be578..0edcd6d7b2c 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcorepoints.code.tex,v 1.7 2006/10/16 22:32:58 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcorepoints.code.tex,v 1.9 2007/04/19 11:57:08 tantau Exp $ \newdimen\pgf@picminx \newdimen\pgf@picmaxx @@ -23,27 +23,6 @@ \def\pgf@process#1{{#1\global\pgf@x=\pgf@x\global\pgf@y=\pgf@y}} -\newdimen\pgf@tempdim -\def\pgf@setlength#1#2{% these will be used only when \nullfont is active - \begingroup% keep font setting local - \pgf@selectfontorig% restore font - \pgf@setlengthorig\pgf@tempdim{#2}% calculate dimension (possibly using calc) - \global\pgf@tempdim\pgf@tempdim% make dimension global - \endgroup% - #1=\pgf@tempdim\relax} -\def\pgf@addtolength#1#2{% - \begingroup% keep font setting local - \pgf@selectfontorig% restore font - \pgf@tempdim#1\relax% - \pgf@addtolengthorig\pgf@tempdim{#2}% calculate dimension (possibly using calc) - \global\pgf@tempdim\pgf@tempdim% make dimension global - \endgroup% - #1=\pgf@tempdim\relax} -\newcount\c@pgf@tempcount -\def\pgf@setcounter#1#2{% - \pgflatex@setcounter{pgf@tempcount}{#2}% makes change global! - \csname c@#1\endcsname=\c@pgf@tempcount\relax} -\def\pgf@selectfont{\pgf@selectfontorig\nullfont} @@ -60,8 +39,8 @@ % \pgfpathmoveto{\pgfpoint{2pt+3cm}{3cm}} \def\pgfpoint#1#2{% - \setlength\pgf@x{#1}% - \setlength\pgf@y{#2}\ignorespaces} + \pgfmathsetlength\pgf@x{#1}% + \pgfmathsetlength\pgf@y{#2}\ignorespaces} % Quickly a point @@ -89,7 +68,7 @@ % % \pgfpathmoveto{\pgfpointorigin} -\def\pgfpointorigin{\pgfpoint{0pt}{0pt}\ignorespaces} +\def\pgfpointorigin{\pgf@x=0pt\pgf@y=\pgf@x\ignorespaces} @@ -321,7 +300,7 @@ \advance\pgf@x by-\pgf@xb\relax% \advance\pgf@y by-\pgf@yb\relax% \pgf@process{\pgfpointnormalised{}}% x/y = normalised vector - \setlength\pgf@xa{#1}% + \pgfmathsetlength\pgf@xa{#1}% \pgf@ya=\pgf@xa\relax% \pgf@xa=\pgf@sys@tonumber{\pgf@x}\pgf@xa% \pgf@ya=\pgf@sys@tonumber{\pgf@y}\pgf@ya% @@ -353,8 +332,9 @@ % \pgfpathmoveto{\pgfpointcurveattime{0.5}{\pgfpointxy{0}{1}}{\pgfpointxy{1}{1}}{\pgfpointxy{1}{1}}{\pgfpointxy{2}{3}}} \def\pgfpointcurveattime#1#2#3#4#5{% - \def\pgf@time@s{#1}% - \pgf@x=#1pt% + \pgfmathparse{#1}% + \let\pgf@time@s=\pgfmathresult% + \pgf@x=\pgfmathresult pt% \pgf@x=-\pgf@x% \advance\pgf@x by 1pt% \edef\pgf@time@t{\pgf@sys@tonumber{\pgf@x}}% @@ -406,8 +386,8 @@ % A polar coordinate % % #1 = a degree -% #2 = a radius -- either a dimension or two dimensions separated by a -% slash. +% #2 = a radius -- either a dimension or two dimensions separated by +% " and ". % % x = (first dimension in #2) * cos(#1) % y = (second dimension in #2) * sin(#2) @@ -415,26 +395,41 @@ % Example: % % \pgfpathmoveto{\pgfpointpolar{30}{1cm}} -% \pgfpathlineto{\pgfpointpolar{30}{1cm/2cm}} +% \pgfpathlineto{\pgfpointpolar{30}{1cm and 2cm}} \def\pgfpointpolar#1#2{% - \pgfsincos{#1}% - \pgfutil@in@/{#2}% + \pgfutil@in@{and }{#2}% \ifpgfutil@in@% \pgf@polar@#2\@@% \else% - \pgf@polar@#2/#2\@@% + \pgf@polar@#2 and #2\@@% \fi% - \pgf@xa=\pgf@sys@tonumber{\pgf@x}\pgf@xa% - \pgf@ya=\pgf@sys@tonumber{\pgf@y}\pgf@ya% - \pgf@y=\pgf@xa\relax% - \pgf@x=\pgf@ya\ignorespaces} + \pgfmathparse{#1}% + \let\pgfpoint@angle=\pgfmathresult% + \pgfmathcos@{\pgfpoint@angle}% + \pgf@x=\pgfmathresult\pgf@x% + \pgfmathsin@{\pgfpoint@angle}% + \pgf@y=\pgfmathresult\pgf@y% +} -\def\pgf@polar@#1/#2\@@{% - \setlength{\pgf@xa}{#2}% - \setlength{\pgf@ya}{#1}% +\def\pgf@polar@#1and #2\@@{% + \pgfmathsetlength{\pgf@y}{#2}% + \pgfmathsetlength{\pgf@x}{#1}% } +% Quick version of the polar coordinate method + +\def\pgfqpointpolar#1#2{% + \pgf@x=#2% + \pgf@y=\pgf@x% + \pgfmathcos@{#1}% + \pgf@x=\pgfmathresult\pgf@x% + \pgfmathsin@{#1}% + \pgf@y=\pgfmathresult\pgf@y\relax% +} + + + % A polar coordinate in the xy plane. % @@ -449,21 +444,26 @@ % \pgfpathmoveto{\pgfpointpolarxy{30}{2}} \def\pgfpointpolarxy#1#2{% - \pgfsincos{#1}% - \pgfutil@in@/{#2}% + \pgfutil@in@{and }{#2}% \ifpgfutil@in@% \pgf@polarxy@#2\@@% \else% - \pgf@polarxy@#2/#2\@@% + \pgf@polarxy@#2and #2\@@% \fi% + \pgfmathparse{#1}% + \let\pgfpoint@angle=\pgfmathresult% + \pgfmathcos@{\pgfpoint@angle}% + \pgf@xa=\pgfmathresult\pgf@xa% + \pgfmathsin@{\pgfpoint@angle}% + \pgf@ya=\pgfmathresult\pgf@ya% \pgf@x=\pgf@sys@tonumber{\pgf@xa}\pgf@xx% \advance\pgf@x by \pgf@sys@tonumber{\pgf@ya}\pgf@yx% \pgf@y=\pgf@sys@tonumber{\pgf@xa}\pgf@xy% \advance\pgf@y by \pgf@sys@tonumber{\pgf@ya}\pgf@yy} -\def\pgf@polarxy@#1/#2\@@{% - \pgf@xa=#1\pgf@y% - \pgf@ya=#2\pgf@x% +\def\pgf@polarxy@#1and #2\@@{% + \pgfmathsetlength{\pgf@xa}{#1}% + \pgfmathsetlength{\pgf@ya}{#2}% } @@ -482,8 +482,9 @@ \def\pgfpointcylindrical#1#2#3{% \pgfpointpolarxy{#1}{#2}% - \advance\pgf@x by #3\pgf@zx% - \advance\pgf@y by #3\pgf@zy} + \pgfmathparse{#3}% + \advance\pgf@x by \pgfmathresult\pgf@zx% + \advance\pgf@y by \pgfmathresult\pgf@zy} % A spherical coordinate. @@ -499,18 +500,26 @@ % \pgfpathmoveto{\pgfpointspherical{30}{30}{2}} \def\pgfpointspherical#1#2#3{% - \pgfsincos{#1}% - \pgf@xb=\pgf@sys@tonumber{\pgf@y}\pgf@xx% - \advance\pgf@xb by \pgf@sys@tonumber{\pgf@x}\pgf@yx% - \pgf@yb=\pgf@sys@tonumber{\pgf@y}\pgf@xy% - \advance\pgf@yb by \pgf@sys@tonumber{\pgf@x}\pgf@yy% - \pgfsincos{#2}% - \pgf@xc=\pgf@sys@tonumber{\pgf@y}\pgf@xb% - \advance\pgf@xc by \pgf@sys@tonumber{\pgf@x}\pgf@zx% - \pgf@yc=\pgf@sys@tonumber{\pgf@y}\pgf@yb% - \advance\pgf@yc by \pgf@sys@tonumber{\pgf@x}\pgf@zy% - \pgf@x=#3\pgf@xc% - \pgf@y=#3\pgf@yc% + \pgfmathparse{#1}% + \let\pgfpoint@angle=\pgfmathresult% + \pgfmathsin@{\pgfpoint@angle}% + \pgf@xb=\pgfmathresult\pgf@xx% + \pgf@yb=\pgfmathresult\pgf@xy% + \pgfmathcos@{\pgfpoint@angle}% + \advance\pgf@xb by \pgfmathresult\pgf@yx% + \advance\pgf@yb by \pgfmathresult\pgf@yy% + % + \pgfmathparse{#2}% + \let\pgfpoint@angle=\pgfmathresult% + \pgfmathcos@{\pgfpoint@angle}% + \pgf@xc=\pgfmathresult\pgf@xb% + \pgf@yc=\pgfmathresult\pgf@yb% + \pgfmathsin@{\pgfpoint@angle}% + \advance\pgf@xc by \pgfmathresult\pgf@zx% + \advance\pgf@yc by \pgfmathresult\pgf@zy% + \pgfmathparse{#3}% + \pgf@x=\pgfmathresult\pgf@xc% + \pgf@y=\pgfmathresult\pgf@yc\relax% } @@ -542,10 +551,15 @@ % \pgfpathlineto{\pgfpointxy{0}{1}} % \pgfclosestroke -\def\pgfpointxy#1#2{\pgf@x=#1\pgf@xx% - \advance\pgf@x by #2\pgf@yx% - \pgf@y=#1\pgf@xy% - \advance\pgf@y by #2\pgf@yy} +\def\pgfpointxy#1#2{% + \pgfmathparse{#1}% + \let\pgftemp@x=\pgfmathresult% + \pgfmathparse{#2}% + \let\pgftemp@y=\pgfmathresult% + \pgf@x=\pgftemp@x\pgf@xx% + \advance\pgf@x by \pgftemp@y\pgf@yx% + \pgf@y=\pgftemp@x\pgf@xy% + \advance\pgf@y by \pgftemp@y\pgf@yy} % Store the vector #1 * x-vec + #2 * y-vec + #3 * z-vec @@ -581,12 +595,18 @@ % \pgfline{\pgfpointxyz{0}{1}{1}}{\pgfpointxyz{1}{1}{1}} \def\pgfpointxyz#1#2#3{% - \pgf@x=#1\pgf@xx% - \advance\pgf@x by #2\pgf@yx% - \advance\pgf@x by #3\pgf@zx% - \pgf@y=#1\pgf@xy% - \advance\pgf@y by #2\pgf@yy% - \advance\pgf@y by #3\pgf@zy} + \pgfmathparse{#1}% + \let\pgftemp@x=\pgfmathresult% + \pgfmathparse{#2}% + \let\pgftemp@y=\pgfmathresult% + \pgfmathparse{#3}% + \let\pgftemp@z=\pgfmathresult% + \pgf@x=\pgftemp@x\pgf@xx% + \advance\pgf@x by \pgftemp@y\pgf@yx% + \advance\pgf@x by \pgftemp@z\pgf@zx% + \pgf@y=\pgftemp@x\pgf@xy% + \advance\pgf@y by \pgftemp@y\pgf@yy% + \advance\pgf@y by \pgftemp@z\pgf@zy} @@ -688,7 +708,7 @@ \pgf@y=0pt\relax% \else% \divide\c@pgf@countb by \c@pgf@counta% - \pgf@setmath{x}{\csname pgf@cosfrac\the\c@pgf@countb\endcsname}% + \pgf@x=\csname pgf@cosfrac\the\c@pgf@countb\endcsname pt% \pgf@xc=8192pt% \divide\pgf@xc by\c@pgf@counta% \pgf@y=\pgf@sys@tonumber{\pgf@xc}\pgf@ya% @@ -719,7 +739,7 @@ \pgf@x=0pt\relax% \else% \divide\c@pgf@countb by \c@pgf@counta% - \pgf@setmath{y}{\csname pgf@cosfrac\the\c@pgf@countb\endcsname}% + \pgf@y=\csname pgf@cosfrac\the\c@pgf@countb\endcsname pt% \pgf@xc=8192pt% \divide\pgf@xc by\c@pgf@counta% \pgf@x=\pgf@sys@tonumber{\pgf@xc}\pgf@xa% @@ -728,7 +748,8 @@ \ifdim\pgf@ya<0pt% \pgf@y=-\pgf@y% \fi% - \fi\ignorespaces} + \fi\ignorespaces% +} @@ -919,4 +940,60 @@ #1=\pgf@y\relax} + +\def\pgf@def#1#2#3{\expandafter\def\csname pgf@#1#2\endcsname{#3}} +\pgf@def{cosfrac}{0}{1} +\pgf@def{cosfrac}{1}{0.99995} \pgf@def{cosfrac}{2}{0.9998} +\pgf@def{cosfrac}{3}{0.99955} \pgf@def{cosfrac}{4}{0.999201} +\pgf@def{cosfrac}{5}{0.998752} \pgf@def{cosfrac}{6}{0.998205} +\pgf@def{cosfrac}{7}{0.997559} \pgf@def{cosfrac}{8}{0.996815} +\pgf@def{cosfrac}{9}{0.995974} \pgf@def{cosfrac}{10}{0.995037} +\pgf@def{cosfrac}{11}{0.994004} \pgf@def{cosfrac}{12}{0.992877} +\pgf@def{cosfrac}{13}{0.991656} \pgf@def{cosfrac}{14}{0.990342} +\pgf@def{cosfrac}{15}{0.988936} \pgf@def{cosfrac}{16}{0.987441} +\pgf@def{cosfrac}{17}{0.985856} \pgf@def{cosfrac}{18}{0.984183} +\pgf@def{cosfrac}{19}{0.982424} \pgf@def{cosfrac}{20}{0.980581} +\pgf@def{cosfrac}{21}{0.978653} \pgf@def{cosfrac}{22}{0.976644} +\pgf@def{cosfrac}{23}{0.974555} \pgf@def{cosfrac}{24}{0.972387} +\pgf@def{cosfrac}{25}{0.970143} \pgf@def{cosfrac}{26}{0.967823} +\pgf@def{cosfrac}{27}{0.965429} \pgf@def{cosfrac}{28}{0.962964} +\pgf@def{cosfrac}{29}{0.960429} \pgf@def{cosfrac}{30}{0.957826} +\pgf@def{cosfrac}{31}{0.955157} \pgf@def{cosfrac}{32}{0.952424} +\pgf@def{cosfrac}{33}{0.949629} \pgf@def{cosfrac}{34}{0.946773} +\pgf@def{cosfrac}{35}{0.943858} \pgf@def{cosfrac}{36}{0.940887} +\pgf@def{cosfrac}{37}{0.937862} \pgf@def{cosfrac}{38}{0.934784} +\pgf@def{cosfrac}{39}{0.931655} \pgf@def{cosfrac}{40}{0.928477} +\pgf@def{cosfrac}{41}{0.925252} \pgf@def{cosfrac}{42}{0.921982} +\pgf@def{cosfrac}{43}{0.918669} \pgf@def{cosfrac}{44}{0.915315} +\pgf@def{cosfrac}{45}{0.911922} \pgf@def{cosfrac}{46}{0.90849} +\pgf@def{cosfrac}{47}{0.905024} \pgf@def{cosfrac}{48}{0.901523} +\pgf@def{cosfrac}{49}{0.89799} \pgf@def{cosfrac}{50}{0.894427} +\pgf@def{cosfrac}{51}{0.890835} \pgf@def{cosfrac}{52}{0.887217} +\pgf@def{cosfrac}{53}{0.883573} \pgf@def{cosfrac}{54}{0.879905} +\pgf@def{cosfrac}{55}{0.876216} \pgf@def{cosfrac}{56}{0.872506} +\pgf@def{cosfrac}{57}{0.868777} \pgf@def{cosfrac}{58}{0.865031} +\pgf@def{cosfrac}{59}{0.861269} \pgf@def{cosfrac}{60}{0.857493} +\pgf@def{cosfrac}{61}{0.853704} \pgf@def{cosfrac}{62}{0.849903} +\pgf@def{cosfrac}{63}{0.846092} \pgf@def{cosfrac}{64}{0.842271} +\pgf@def{cosfrac}{65}{0.838444} \pgf@def{cosfrac}{66}{0.834609} +\pgf@def{cosfrac}{67}{0.83077} \pgf@def{cosfrac}{68}{0.826927} +\pgf@def{cosfrac}{69}{0.82308} \pgf@def{cosfrac}{70}{0.819232} +\pgf@def{cosfrac}{71}{0.815383} \pgf@def{cosfrac}{72}{0.811534} +\pgf@def{cosfrac}{73}{0.807687} \pgf@def{cosfrac}{74}{0.803842} +\pgf@def{cosfrac}{75}{0.8} \pgf@def{cosfrac}{76}{0.796162} +\pgf@def{cosfrac}{77}{0.792329} \pgf@def{cosfrac}{78}{0.788502} +\pgf@def{cosfrac}{79}{0.784682} \pgf@def{cosfrac}{80}{0.780869} +\pgf@def{cosfrac}{81}{0.777064} \pgf@def{cosfrac}{82}{0.773268} +\pgf@def{cosfrac}{83}{0.769481} \pgf@def{cosfrac}{84}{0.765705} +\pgf@def{cosfrac}{85}{0.761939} \pgf@def{cosfrac}{86}{0.758185} +\pgf@def{cosfrac}{87}{0.754443} \pgf@def{cosfrac}{88}{0.750714} +\pgf@def{cosfrac}{89}{0.746997} \pgf@def{cosfrac}{90}{0.743294} +\pgf@def{cosfrac}{91}{0.739605} \pgf@def{cosfrac}{92}{0.735931} +\pgf@def{cosfrac}{93}{0.732272} \pgf@def{cosfrac}{94}{0.728628} +\pgf@def{cosfrac}{95}{0.724999} \pgf@def{cosfrac}{96}{0.721387} +\pgf@def{cosfrac}{97}{0.717792} \pgf@def{cosfrac}{98}{0.714213} +\pgf@def{cosfrac}{99}{0.710651} \pgf@def{cosfrac}{100}{0.707107} + + + \endinput |