diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/euclide/pst-eucl.tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/euclide/pst-eucl.tex | 857 |
1 files changed, 0 insertions, 857 deletions
diff --git a/Master/texmf-dist/tex/latex/euclide/pst-eucl.tex b/Master/texmf-dist/tex/latex/euclide/pst-eucl.tex deleted file mode 100644 index 4a36e1a2d5f..00000000000 --- a/Master/texmf-dist/tex/latex/euclide/pst-eucl.tex +++ /dev/null @@ -1,857 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -*- Mode: Latex -*- %%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% pst-eucl.tex --- Generation of geometric figures in euclidean geometry -%% Copyright 2000-2002 Dominique RODRIGUEZ -%% -%% Author : Dominique RODRIGUEZ (EN) <dominique.rodriguez@waika9.com> -%% Created the : Mon Oct 16 21:15:11 CEST 2000 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% HISTORY -%% -%% 2000-10-16 : creation of the file from a first LaTeX protype sty file -%% -%% 2001-05-7 : distribution of the beta version -%% -%% 2002-03-21 : distribution of the beta version -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\fileversion{0.beta.5} -\def\filedate{2002/03/21}% -%% This program can be redistributed and/or modified under the terms -%% of the LaTeX Project Public License Distributed from CTAN -%% archives in directory macros/latex/base/lppl.txt. -\message{`PST-Euclide v\fileversion, \filedate\space (Dominique RODRIGUEZ)}% -\message{ BEWARE this is a BETA version, things can and will change}% -\message{ without conserving upward compatibilities}% -\csname PSTEuclideLoaded\endcsname -\let\PSTEuclideLoaded\endinput -% Require PSTricks and pst-node packages -\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi -\ifx\PSTnodesLoaded\endinput\else\input pst-node.tex\fi -\ifx\MultidoLoaded\endinput\else\input multido.tex\fi -%% prologue for postcript -\pstheader{pst-eucl.pro}% -% DPC interface to the `keyval' package (until keyval based version of PSTricks) -\input pst-key.tex -\edef\PstAtCode{\the\catcode`\@}% -\catcode`\@=11\relax -% Definition of the parameters -% ---------------------------- -% symbol used for the point -\define@key{psset}{PointSymbol}{\edef\psk@PointSymbol{#1}}% -\define@key{psset}{PointSymbolA}{\edef\psk@PointSymbolA{#1}}% -\define@key{psset}{PointSymbolB}{\edef\psk@PointSymbolB{#1}}% -\define@key{psset}{PointSymbolC}{\edef\psk@PointSymbolC{#1}}% -% name used for the point -\define@key{psset}{PointName}{\edef\psk@PointName{#1}}% -\define@key{psset}{PointNameA}{\edef\psk@PointNameA{#1}}% -\define@key{psset}{PointNameB}{\edef\psk@PointNameB{#1}}% -\define@key{psset}{PointNameC}{\edef\psk@PointNameC{#1}}% -% use math mode in point name -\newif\ifPst@PtNameMath% -\define@key{psset}{PtNameMath}[false]{\@nameuse{Pst@PtNameMath#1}}% -% symbol used for marking equal length segment -\define@key{psset}{SegmentSymbol}{\edef\psk@SegmentSymbol{#1}}% -% position angle for positionning a point name -\define@key{psset}{PosAngle}{\edef\psk@PosAngle{#1}}% -\define@key{psset}{PosAngleA}{\edef\psk@PosAngleA{#1}}% -\define@key{psset}{PosAngleB}{\edef\psk@PosAngleB{#1}}% -\define@key{psset}{PosAngleC}{\edef\psk@PosAngleC{#1}}% -% dimension of the right angle mark -\define@key{psset}{RightAngleSize}{\edef\psk@RightAngleSize{#1}}% -% radius of an angle mark -\define@key{psset}{MarkAngleRadius}{\edef\psk@MarkAngleRadius{#1}}% -% angular offset position of the label for marking an angle -\define@key{psset}{LabelAngleOffset}{\edef\psk@LabelAngleOffset{#1}}% -% position radius of the label for marking an angle -\define@key{psset}{LabelSep}{\edef\psk@LabelSep{#1}}% -% ref point of the label -\define@key{psset}{LabelRefPt}{\edef\psk@LabelRefPt{#1}}% -% coefficient of homothetie -\define@key{psset}{HomCoef}{\edef\psk@HomCoef{#1}}% -% angle of rotation -\define@key{psset}{RotAngle}{\edef\psk@RotAngle{#1}}% -% for drawing the circum-circle -\newif\ifPst@DrawCirABC -\define@key{psset}{DrawCirABC}[true]{\@nameuse{Pst@DrawCirABC#1}}% -% for coding a construction -\newif\ifPst@CodeFig -\define@key{psset}{CodeFig}[false]{\@nameuse{Pst@CodeFig#1}}% -\define@key{psset}{CodeFigA}{\edef\psk@CodeFigA{#1}}% -\define@key{psset}{CodeFigB}{\edef\psk@CodeFigB{#1}}% -\define@key{psset}{CodeFigColor}{\edef\psk@CodeFigColor{#1}}% -\define@key{psset}{CodeFigStyle}{\edef\psk@CodeFigStyle{#1}}% -\newif\ifPst@CodeFigAarc% -\define@key{psset}{CodeFigAarc}[true]{\@nameuse{Pst@CodeFigAarc#1}} -\newif\ifPst@CodeFigBarc% -\define@key{psset}{CodeFigBarc}[true]{\@nameuse{Pst@CodeFigBarc#1}} -%% for specifying a distance for the circle -\define@key{psset}{Radius}{\edef\psk@Radius{#1}}% -\define@key{psset}{RadiusA}{\edef\psk@RadiusA{#1}}% -\define@key{psset}{RadiusB}{\edef\psk@RadiusB{#1}}% -\define@key{psset}{Diameter}{\edef\psk@Diameter{#1}}% -\define@key{psset}{DiameterA}{\edef\psk@DiameterA{#1}}% -\define@key{psset}{DiameterB}{\edef\psk@DiameterB{#1}}% -% for specifying a distance for the circle -\define@key{psset}{DistCoef}{\edef\psk@DistCoef{#1}}% -\define@key{psset}{AngleCoef}{\edef\psk@AngleCoef{#1}}% -% for curvilign abscissa placement -\newif\ifPst@CurvAbsNeg% -\define@key{psset}{CurvAbsNeg}[false]{\@nameuse{Pst@CurvAbsNeg#1}}% -% first and last point of a generic curve -\define@key{psset}{GenCurvFirst}{\edef\psk@GenCurvFirst{#1}}% -\define@key{psset}{GenCurvLast}{\edef\psk@GenCurvLast{#1}}% -% increment of a generic curve -\define@key{psset}{GenCurvInc}{\edef\psk@GenCurvInc{#1}}% -%% Default values -% -------------- -\setkeys{psset}{% - PointSymbol=*, PointSymbolA=undef, PointSymbolB=undef, - PointSymbolC=undef, PointName=undef, PointNameA=undef, - PointNameB=undef, PointNameC=undef, PtNameMath=true, PosAngle=0, - PosAngleA=undef, PosAngleB=undef, PosAngleC=undef, - SegmentSymbol=pstslashslash, RightAngleSize=.28, LabelAngleOffset=0, - LabelSep=1, LabelRefPt=c, MarkAngleRadius=.4, HomCoef=.5, - RotAngle=60, DrawCirABC=true, CodeFig=false, CodeFigColor=cyan, - CodeFigStyle=dashed, CodeFigA=undef, CodeFigB=undef, - CodeFigAarc=true, CodeFigBarc=true, Radius=none, RadiusA=undef, - RadiusB=undef, Diameter=none, DiameterA=undef, DiameterB=undef, - DistCoef=none, AngleCoef=none, CurvAbsNeg=false, - GenCurvFirst=none, GenCurvLast=none, GenCurvInc=1}% -\SpecialCoor %% for using polar coordinates, node - %% position, ... -\psset{dimen=middle}% remark of ML -\def\@undef{undef}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% CORRECTION OF BUG -\def\pst@newnode#1#2#3#4{% -% DG/SR modification begin - Nov. 9, 2000 - Patch 11 - \pst@killglue -% DG/SR modification end -\leavevmode -\pst@getnode{#1}\pst@thenode -\pst@Verb{% -\pst@nodedict -{#3} -\ifx\psk@name\relax false \else \psk@name true \fi -\pst@thenode -#2 -{#4} -\tx@NewNode -end}% -\global\let\psk@name\relax -\pstree@nodehook -\global\let\pstree@nodehook\relax} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% create a point with an associated node, -%% #1 -> options -%% #2 -> coordinates -%% #3 -> node name -%\def\pstGeonode{\@ifnextchar[\Pst@Geonode{\Pst@Geonode[]}}% -%\def\Pst@Geonode[#1](#2)#3{% - %\begingroup\setkeys{psset}{#1}% % Affectation of local parameters -% \pnode(#2){#3}% -% \ifx\psk@PointSymbol\@none\else\Pst@geonodelabel{#3}\fi% - %\endgroup% -%}% -% \def\pstGeonode{\@ifnextchar[\PstGeonode@i{\PstGeonode@i[]}}% -% \def\PstGeonode@i[#1]{%NEW DR 14112001 (for default (0,0) ccordinates) -% \def\pst@par{#1}% -% \@ifnextchar(\PstGeonode@ii{\PstGeonode@ii(0,0)}}% -% \def\PstGeonode@ii(#1)#2{% -% \bgroup\use@par% % Affectation of local parameters -% \pnode(#1){#2}% -% \ifx\psk@PointSymbol\@none\else\Pst@geonodelabel{#2}\fi% -% \egroup% -% }% -\def\pstGeonode{\@ifnextchar[\Pst@Geonode{\Pst@Geonode[]}} -\def\Pst@Geonode[#1]{% - \@ifnextchar({\Pst@Geonode@i[#1]}{\Pst@Geonode[#1](0,0)}} -\def\Pst@Geonode@i[#1](#2)#3{% - \begingroup - \setkeys{psset}{#1}% % Affectation of local parameters - \pnode(#2){#3} - \ifx\psk@PointSymbol\@none\else\Pst@geonodelabel{#3}\fi - \endgroup -} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% create a point with an associated node, in a new -%% landmark -%% #1 -> options -%% #2 -> coordinates -%% #3 -> node name -%% #4 -> O: new center of the landmark -%% #5 -> I: abscissa reference -%% #6 -> J: ordinate reference -\def\pstOIJGeonode{\@ifnextchar[\Pst@OIJGeonode{\Pst@OIJGeonode[]}}% -\def\Pst@OIJGeonode[#1]{%NEW DR 14112001 (for default (0,0) ccordinates) - \@ifnextchar({\Pst@OIJGeonode@i[#1]}{\Pst@OIJGeonode[#1](0,0)}}% -\def\Pst@OIJGeonode@i[#1](#2)#3#4#5#6{% - \begingroup - \setkeys{psset}{#1}% % Affectation of local parameters - \rput(#4){% - \pst@@getcoor{#2}% - \rput(! - \pst@coor\space - tx@EcldDict begin /N@#5 GetNode /N@#6 GetNode end - 4 index mul 3 -1 roll 5 index mul add - \pst@number\psyunit dup mul div exch - 4 -1 roll mul 3 -1 roll 4 -1 roll mul add - \pst@number\psxunit dup mul div exch - )% - {\pnode{#3}}% - } - \ifx\psk@PointSymbol\@none\else\Pst@geonodelabel{#3}\fi% - \endgroup% -}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% #1 -> point coordinates -\def\Pst@geonodelabel#1{%% {nodename} - \psdot[dotstyle=\psk@PointSymbol](#1)%NEW DR 28092001 - \rput{*0}([nodesep=1em,angle=\psk@PosAngle]#1)% - {\ifPst@PtNameMath$\Pst@WhichLabel{#1}$\else\Pst@WhichLabel{#1}\fi}% -}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\Pst@WhichLabel#1{% - \ifx\psk@PointName\@none\else - \ifx\psk@PointName\@undef#1\else\psk@PointName\fi - \fi}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% #2 #3 -> nodes defining the segment to mark -\def\pstSegmentMark{\@ifnextchar[\Pst@SegmentMark{\Pst@SegmentMark[]}}% -\def\Pst@SegmentMark[#1]#2#3{% - \bgroup\setkeys{psset}{#1}% % Affectation of local parameters - \ncline[nodesep=0]{#2}{#3} - \ncput[nrot=:U]{$\csname\psk@SegmentSymbol\endcsname$}% - \egroup% -}% -\def\pstslash{/}% -\def\pstslashslash{/\!\!/}% -\def\pstslashslashslash{/\!\!/\!\!/}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% #2 #3 #4 -> 3 nodes for defining the right angle -\def\pstRightAngle{\@ifnextchar[\Pst@RightAngle{\Pst@RightAngle[]}}% -\def\Pst@RightAngle[#1]#2#3#4{% - \bgroup\setkeys{psset}{#1}% % Affectation of local parameters - %% not good at all, but \rput{0}(#3){\rput{(#2)}{stuff}} doesn't work... - \rput(#3){% - \pscustom{% - \rotate{(#2)}% - \psframe(0,0)(\psk@RightAngleSize,\psk@RightAngleSize)% - }% - }% - \egroup% -}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% #2 #3 #4 -> 3 node for defining the angle -%% #5 -> label -\def\pstMarkAngle{\@ifnextchar[\Pst@MarkAngle{\Pst@MarkAngle[]}}% -\def\Pst@MarkAngle[#1]#2#3#4#5{% - \bgroup\setkeys{psset}{#1}% % Affectation of local parameters - %\rput(#3){\psarc(0,0){\psk@MarkAngleRadius}{(#2)}{(#4)}}% - %\rput[\psk@LabelRefPt]% - % {*0}([nodesep=\psk@LabelSep, angle= \psk@LabelAngle]#3){#5}% - \rput(#3){% - \psarc(0,0){\psk@MarkAngleRadius}{(#2)}{(#4)}% - \rput[\psk@LabelRefPt]{*0}% - (!tx@EcldDict begin /N@#4 GetNode exch Atan /N@#2 GetNode end - exch Atan dup 3 1 roll 2 copy lt { exch 360 sub exch } if sub - 2 div add \psk@LabelAngleOffset\space add dup cos \psk@LabelSep\space - mul exch sin \psk@LabelSep\space mul){#5}} - \egroup% -}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% #2 #4 #6 -> coordinates for nodes -%% #3 #5 #7 -> nodes name -\def\pstTriangle{\@ifnextchar[\Pst@Triangle{\Pst@Triangle[]}}% -\def\Pst@Triangle[#1]{%NEW DR 14112001 (for default (0,0) ccordinates) - \def\pst@par{#1}% - \@ifnextchar(\Pst@Trianglei{\Pst@Trianglei(0,0)}}% -\def\Pst@Trianglei(#1)#2(#3)#4(#5)#6{% - \bgroup\use@par% % Affectation of local parameters - \bgroup\ifx\psk@PosAngleA\@undef\else\psset{PosAngle=\psk@PosAngleA}\fi - \ifx\psk@PointSymbolA\@undef\else\psset{PointSymbol=\psk@PointSymbolA}\fi - \ifx\psk@PointNameA\@undef\else\psset{PointName=\psk@PointNameA}\fi - \Pst@Geonode@i[](#1){#2}\egroup%%NEW DR 15112001 - \bgroup\ifx\psk@PosAngleB\@undef\else\psset{PosAngle=\psk@PosAngleB}\fi - \ifx\psk@PointSymbolB\@undef\else\psset{PointSymbol=\psk@PointSymbolB}\fi - \ifx\psk@PointNameB\@undef\else\psset{PointName=\psk@PointNameB}\fi - \Pst@Geonode@i[](#3){#4}\egroup%%NEW DR 15112001 - \ifx\psk@PosAngleC\@undef\else\psset{PosAngle=\psk@PosAngleC}\fi - \ifx\psk@PointSymbolC\@undef\else\psset{PointSymbol=\psk@PointSymbolC}\fi - \ifx\psk@PointNameC\@undef\else\psset{PointName=\psk@PointNameC}\fi - \Pst@Geonode@i[](#5){#6}%%NEW DR 15112001 - \pst@TraceTriangle{#2}{#4}{#6}% - \egroup% -}% -\def\pst@TraceTriangle#1#2#3{\pspolygon(#1)(#2)(#3)}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Line, circle, Arc -%% #2 #3 -> 2 nodes defining the line -\def\pstLineAB{\ncline}%@ifnextchar[\Pst@LineAB{\Pst@LineAB[]}}% -%\def\Pst@LineAB[#1]#2#3{\ncline[#1]{#2}{#3}}% -%% #2 #3 -> 2 nodes defining the center and a point on the circle -\def\pstCircleOA{\pst@object{pstCircleOA}}% -\def\pstCircleOA@i#1#2{% - \bgroup\use@par% - \rput(#1){% - \begin@ClosedObj - \def\pst@linetype{4}% - \addto@pscode{% - tx@EcldDict begin - /N@#1 GetNode - \ifx\psk@Radius\@none - \ifx\psk@Diameter\@none - 2 copy /N@#2 GetNode ABDist - \else\psk@Diameter 2 div - \fi - \else\psk@Radius\space - \fi - end - \psk@dimen CLW mul sub 0 360 arc closepath}% - \showpointsfalse - \end@ClosedObj - }% - \egroup% -}% -%% #2 #3 -> 2 nodes defining a diameter of the circle -\def\pstCircleAB{\pst@object{pstCircleAB}}% -\def\pstCircleAB@i#1#2{% - \bgroup\use@par% - \Pst@MiddleAB[PointSymbol=none]{#2}{#1}{@MAB}{} - \rput(#1){% - \begin@ClosedObj - \def\pst@linetype{4}% - \addto@pscode{% - tx@NodeDict begin - tx@NodeDict /N@@MAB load GetCenter - end - 2 copy - tx@EcldDict begin /N@#2 GetNode ABDist end - \psk@dimen CLW mul sub 0 360 arc closepath}% - \showpointsfalse - \end@ClosedObj - }% - \egroup% -}% -%% #2 #3 #4 -> 3 nodes defining the center and two points on the circle -\def\pstArcOAB{\pst@object{pstArcOAB}}% -\def\pstArcnOAB{\pst@object{pstArcnOAB}}% -\def\pstArcnOAB@i{\def\psarc@type{1}\pstArcOAB@i}% -\def\pstArcOAB@i{\pstArcOAB@ii}%\@ifnextchar[\pstArcOAB@ii{\pstArcOAB@ii[]}}% -\def\pstArcOAB@ii#1#2#3{%[#1]#2#3#4{% - \bgroup\use@par% - \rput(#1){\pstArcOAB@iii{#2}{#3}}% - \egroup% -}% -\def\pstArcOAB@iii#1#2{% - \begin@OpenObj% - \addto@pscode{\pstArcOAB@iv{#1}{#2} \pstArcOAB@v}% - \gdef\psarc@type{0}% - \showpointsfalse - \end@OpenObj% -}%% end \pstArcOAB@iii -\def\pstArcOAB@iv#1#2{% - \pst@coor /y ED /x ED /r - tx@EcldDict begin /N@#1 GetNode end - Pyth def /c 57.2957 r \tx@Div def /angleA - tx@EcldDict begin /N@#1 GetNode end - exch Atan \psk@arcsepA c mul 2 div - \ifcase \psarc@type add \or sub \fi def - /angleB - tx@EcldDict begin /N@#2 GetNode end - exch Atan \psk@arcsepB c mul 2 div - \ifcase \psarc@type sub \or add \fi def - %ifshowpoints\psarc@showpoints\fi - \ifx\psk@arrowA\@empty - \ifnum\psk@liftpen=2 r angleA \tx@PtoC - y add exch x add exch - moveto - \fi - \fi% -}%% end \pstArcOAB@iv -\def\pstArcOAB@v{% - x y r angleA - \ifx\psk@arrowA\@empty\else - { ArrowA CP } { \ifcase\psarc@type add \or sub \fi }% - \tx@ArcArrow - \fi - angleB - \ifx\psk@arrowB\@empty\else - { ArrowB } { \ifcase\psarc@type sub \or add \fi }% - \tx@ArcArrow - \fi - \ifcase\psarc@type arc \or arcn \fi% -}%% end \pstArcOAB@v -\def\pstArcOAB@showpoints{% - gsave newpath x y moveto x y r \pst@tempa \pst@tempb - \ifcase\psarc@type arc \or arcn \fi - closepath CLW 2 div SLW [ \psk@dash\space ] 0 setdash stroke - grestore % -}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% HOMOTETHIE -%% #2 -> centre -%% #3 -> antecedent -%% #4 -> node name of the homothetic of #1 -\def\pstHomO{\@ifnextchar[\Pst@HomO{\Pst@HomO[]}}% -\def\Pst@HomO[#1]#2#3#4{% - \bgroup\setkeys{psset}{#1}% % Affectation of local parameters - \Pst@@HomO{#2}{#3}{#4}% - \ifx\psk@PointSymbol\@none\else{\Pst@geonodelabel{#4}}\fi% - \egroup% -}% -\def\Pst@@HomO#1#2#3{% -% \ncline[linestyle=none]{#1}{#2}\ncput[npos=\psk@HomCoef]{\pnode{#3}}% - \rput(#1){% - \rput(! - tx@EcldDict begin /N@#2 GetNode end - \psk@HomCoef\space mul exch \psk@HomCoef\space mul exch - \pst@number\psyunit div exch \pst@number\psxunit div - exch){\pnode{#3}}% - } -}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Central Symmetry -%% #2 -> centre -%% #3 -> antecedent -%% #4 -> node name of the symmetrical point of #3 -\def\pstSymO{\@ifnextchar[\Pst@SymO{\Pst@SymO[]}}% -\def\Pst@SymO[#1]#2#3#4{% - \bgroup\setkeys{psset}{#1, HomCoef=-1}% % Affectation of local parameters - \Pst@HomO[]{#2}{#3}{#4}% - \ifPst@CodeFig% - \psset{linecolor=\psk@CodeFigColor, linestyle=\psk@CodeFigStyle}% - \pstSegmentMark{#4}{#2}% - \pstSegmentMark{#2}{#3}% - \fi% - \egroup -}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Middle of a Segment -%% #2 #3 -> 2 nodes defining the segment -%% #4 -> node name of the middle of [#2 #3] -\def\pstMiddleAB{\@ifnextchar[\Pst@MiddleAB{\Pst@MiddleAB[]}}% -\def\Pst@MiddleAB[#1]#2#3#4{% - \bgroup\setkeys{psset}{#1, HomCoef=.5}% % Affectation of local parameters - \Pst@HomO[]{#2}{#3}{#4}% - \ifPst@CodeFig% - \psset{linecolor=\psk@CodeFigColor, linestyle=\psk@CodeFigStyle}% - \pstSegmentMark{#2}{#4}% - \pstSegmentMark{#4}{#3}% - \fi% - \egroup -}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Centre of Gravity of a Triangle -%% #2 #3 #4 -> 3 nodes defining the triangle -%% #5 -> node name of the centre of gravity of #2 #3 #4 -\def\pstCGravABC{\@ifnextchar[\Pst@CGravABC{\Pst@CGravABC[]}}% -\def\Pst@CGravABC[#1]#2#3#4#5{% - \bgroup\setkeys{psset}{#1}% % Affectation of local parameters - \Pst@HomO[PointSymbol=none,HomCoef=.5]{#2}{#3}{@Milieu#2#3}% - \Pst@HomO[HomCoef=1 3 div]{@Milieu#2#3}{#4}{#5}% - \egroup -}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Centre of the circoncrit circle -%% #2 #3 #4 -> 3 nodes defining the triangle -%% #5 -> node name of the centre of the circle -\def\pstCircleABC{\@ifnextchar[\Pst@CircleABC{\Pst@CircleABC[]}}% -\def\Pst@CircleABC[#1]#2#3#4#5{% - \bgroup\setkeys{psset}{#1}% % Affectation of local parameters - \bgroup - \psset{PointSymbol=none}% - \Pst@HomO[HomCoef=.5]{#2}{#3}{@Middle#2#3}{}% - \Pst@Rotation[RotAngle=90]{@Middle#2#3}{#2}{@Middle#2#3P}{}% - \Pst@HomO[HomCoef=.5]{#2}{#4}{@Middle#2#4}{}% - \Pst@Rotation[RotAngle=90]{@Middle#2#4}{#2}{@Middle#2#4P}{}% - \egroup - \Pst@InterLL[]{@Middle#2#3}{@Middle#2#3P}{@Middle#2#4}{@Middle#2#4P}{#5}% - \ifPst@DrawCirABC\pstCircleOA{#5}{#2}\fi - \ifPst@CodeFig - \psset{linecolor=\psk@CodeFigColor, linestyle=\psk@CodeFigStyle, nodesep=-1}% - \Pst@HomO[HomCoef=.5, PointSymbol=none]{#4}{#3}{@Middle#4#3}{}% - \ncline{#5}{@Middle#4#3}% - \ncline{#5}{@Middle#2#3}% - \ncline{#5}{@Middle#2#4}% - \psset{linestyle=solid}% - \Pst@RightAngle[]{#5}{@Middle#4#3}{#4}% - \Pst@RightAngle[]{#5}{@Middle#2#3}{#2}% - \Pst@RightAngle[]{#5}{@Middle#2#4}{#3}% - \fi - \egroup -}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% TRANSLATION -%% #2 #3 -> 2 nodes defining the translation vector -%% #4 -> antecedent -%% #5 -> node name of the image -%% #6 -> label -\def\pstTranslation{\@ifnextchar[\Pst@Translation{\Pst@Translation[]}}% -\def\Pst@Translation[#1]#2#3#4#5{% - \bgroup\setkeys{psset}{#1}% - \rput(#2){% - \rput(! - tx@EcldDict begin /N@#3 GetNode /N@#4 GetNode end - 3 -1 roll - \ifx\psk@DistCoef\@none\else\psk@DistCoef\space mul \fi - add exch 3 -1 roll - \ifx\psk@DistCoef\@none\else\psk@DistCoef\space mul \fi - add exch - \pst@number\psyunit div exch \pst@number\psxunit div exch)% - {\pnode{#5}}% - }% - \ifx\psk@PointSymbol\@none\else{\Pst@geonodelabel{#5}}\fi% - \egroup% -}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% ROTATION -%% #2 -> centre of rotation -%% #3 -> antecedent -%% #4 -> node name of the image -%% #5 -> label -\def\pstRotation{\@ifnextchar[\Pst@Rotation{\Pst@Rotation[]}}% -\def\Pst@Rotation[#1]#2#3#4{% - \bgroup\setkeys{psset}{#1}% - \Pst@@Rotation{#2}{#3}{#4}% - \ifx\psk@PointSymbol\@none\else{\Pst@geonodelabel{#4}}\fi% - \egroup% - %% AJOUTER LE MARQUAGE CodeFig -}% -\def\Pst@@Rotation#1#2#3{% - \rput(#1){% - \rput(! - tx@EcldDict begin /N@#2 GetNode \psk@RotAngle\space Rotate end - \pst@number\psyunit div exch \pst@number\psxunit div exch)% - {\pnode{#3}}% - }%% end \rput -}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Intersection between two lines -%% #2 #3 -> nodes defining the first line -%% #4 #5 -> nodes defining the second line -%% #6 -> node name of the image -%% #7 -> label -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\pstInterLL{\@ifnextchar[\Pst@InterLL{\Pst@InterLL[]}}% -\def\Pst@InterLL[#1]#2#3#4#5#6{% - \bgroup\setkeys{psset}{#1}% % Affectation of local parameters - \rput(! - tx@EcldDict begin - /N@#2 GetNode /N@#3 GetNode /N@#4 GetNode /N@#5 GetNode InterLines - end - \pst@number\psyunit div exch \pst@number\psxunit div exch){\pnode{#6}}% - \ifx\psk@PointSymbol\@none\else{\Pst@geonodelabel{#6}}\fi% - \egroup% -}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Intersection between one line and one circle -%% #2 #3 -> nodes defining the first line -%% #4 #5 -> nodes defining the center and a point onto C -%% #6 -> node name of the first point -%% #7 -> label -%% #8 -> node name of the second point -%% #9 -> label -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\pstInterLC{\@ifnextchar[\Pst@InterLC{\Pst@InterLC[]}}% -\def\Pst@InterLC[#1]#2#3#4#5#6#7{% - \bgroup\setkeys{psset}{#1}% % Affectation of local parameters - \rput(#4){% - \rput(! - tx@EcldDict begin - /N@#2 GetNode /N@#3 GetNode EqDr - \ifx\psk@Radius\@none - \ifx\psk@Diameter\@none - /N@#4 GetNode /N@#5 GetNode ABDist - \else\psk@Diameter 2 div - \fi - \else\psk@Radius - \fi - InterLineCircle /Glby exch def /Glbx exch def - \pst@number\psyunit div exch \pst@number\psxunit div exch - end){\pnode{#6}}% - \rput(! - tx@EcldDict begin - Glbx \pst@number\psxunit div Glby \pst@number\psyunit div - end){\pnode{#7}}}% - \bgroup\ifx\psk@PosAngleA\@undef\else\psset{PosAngle=\psk@PosAngleA}\fi - \ifx\psk@PointSymbolA\@undef\else\psset{PointSymbol=\psk@PointSymbolA}\fi - \ifx\psk@PointNameA\@undef\else\psset{PointName=\psk@PointNameA}\fi - \ifx\psk@PointSymbol\@none\else{\Pst@geonodelabel{#6}}\fi\egroup% - \ifx\psk@PosAngleB\@undef\else\psset{PosAngle=\psk@PosAngleB}\fi - \ifx\psk@PointSymbolB\@undef\else\psset{PointSymbol=\psk@PointSymbolB}\fi - \ifx\psk@PointNameB\@undef\else\psset{PointName=\psk@PointNameB}\fi - \ifx\psk@PointSymbol\@none\else{\Pst@geonodelabel{#7}}\fi% - \egroup% -}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Intersection between two circles -%% #2 #3 -> nodes defining the first circle -%% #4 #5 -> nodes defining the second circle -%% #6 -> node name of the first point -%% #7 -> node name of the second point -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\pstInterCC{\@ifnextchar[\Pst@InterCC{\Pst@InterCC[]}}% -\def\Pst@InterCC[#1]#2#3#4#5#6#7{% - \bgroup\setkeys{psset}{#1}% % Affectation of local parameters - \rput(#2){% - \rput(! - tx@EcldDict begin - \ifx\psk@RadiusA\@undef - \ifx\psk@DiameterA\@undef - /N@#3 GetNode Pyth - \else\psk@DiameterA 2 div - \fi - \else\psk@RadiusA\space - \fi - \ifx\psk@RadiusB\@undef - \ifx\psk@DiameterB\@undef - /N@#4 GetNode /N@#5 GetNode ABDist - \else\psk@DiameterB 2 div - \fi - \else\psk@RadiusB\space - \fi - /N@#4 GetNode Pyth InterCircles /N@#4 GetNode - exch Atan dup /xoC exch def Rotate /Glby exch def /Glbx exch def - xoC Rotate - end - \pst@number\psyunit div exch \pst@number\psxunit div exch) - {\pnode{#6}}% - \rput(! - tx@EcldDict begin - Glbx \pst@number\psxunit div Glby \pst@number\psyunit div - end)% - {\pnode{#7}}% - }% - \bgroup\ifx\psk@PosAngleA\@undef\else\psset{PosAngle=\psk@PosAngleA}\fi - \ifx\psk@PointSymbolA\@undef\else\psset{PointSymbol=\psk@PointSymbolA}\fi - \ifx\psk@PointNameA\@undef\else\psset{PointName=\psk@PointNameA}\fi - \ifx\psk@PointSymbol\@none\else{\Pst@geonodelabel{#6}}\fi\egroup% - \bgroup\ifx\psk@PosAngleB\@undef\else\psset{PosAngle=\psk@PosAngleB}\fi - \ifx\psk@PointSymbolB\@undef\else\psset{PointSymbol=\psk@PointSymbolB}\fi - \ifx\psk@PointNameB\@undef\else\psset{PointName=\psk@PointNameB}\fi - \ifx\psk@PointSymbol\@none\else{\Pst@geonodelabel{#7}}\fi\egroup% - \psset{linecolor=\psk@CodeFigColor, linestyle=\psk@CodeFigStyle, arcsep=-1}% - \ifx\psk@CodeFigA\@undef% - \ifx\psk@CodeFigB\@undef\ifPst@CodeFig\pstArcOAB{#2}{#6}{#7}\fi\fi - \else% - \ifPst@CodeFigAarc\pstArcOAB{#2}{#6}{#7}\else\pstArcnOAB{#2}{#6}{#7}\fi% - \fi - \ifx\psk@CodeFigB\@undef% - \ifx\psk@CodeFigA\@undef\ifPst@CodeFig\pstArcOAB{#4}{#6}{#7}\fi\fi - \else% - \ifPst@CodeFigAarc\pstArcOAB{#4}{#6}{#7}\else\pstArcnOAB{#2}{#6}{#7}\fi% - \fi - \egroup% -}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Orthogonal projection -%% #2 #3 -> nodes defining the line where to project -%% #4 -> antecedent -%% #5 -> node name of the image -%% #6 -> label -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\pstProjection{\@ifnextchar[\Pst@Projection{\Pst@Projection[]}}% -\def\Pst@Projection[#1]#2#3#4#5{% - \bgroup\setkeys{psset}{#1}% % Affectation of local parameters - \rput(#2){% translation onto #1 - \rput(! - tx@EcldDict begin /N@#4 GetNode /N@#3 GetNode Project end - \pst@number\psyunit div exch \pst@number\psxunit div exch)% - {\pnode{#5}}% - }% - \ifx\psk@PointSymbol\@none\else{\Pst@geonodelabel{#5}}\fi% - \ifPst@CodeFig% - \psset{linecolor=\psk@CodeFigColor, linestyle=\psk@CodeFigStyle}% - \pstRightAngle[linestyle=solid]{#4}{#5}{#3}% - \ncline{#4}{#5}% - \fi% - \egroup% -}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Orthogonal symmetry -%% #2 #3 -> nodes defining the symmetrical axis -%% #4 -> antecedent node -%% #5 -> node name of the symmetrical point -%% #6 -> label -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\pstOrtSym{\@ifnextchar[\Pst@OrtSym{\Pst@OrtSym[]}}% -\def\Pst@OrtSym[#1]#2#3#4#5{% - \bgroup\setkeys{psset}{#1}% % Affectation of local parameters - \Pst@Projection[PointSymbol=none, CodeFig=false]% - {#2}{#3}{#4}{@ProjOrth#4on#2#3}{}% - \Pst@HomO[HomCoef=-1]{@ProjOrth#4on#2#3}{#4}{#5}% - \ifPst@CodeFig% - \psset{linecolor=\psk@CodeFigColor, linestyle=\psk@CodeFigStyle}% - \Pst@RightAngle[linestyle=solid]{#2}{@ProjOrth#4on#2#3}{#4}% - \Pst@SegmentMark[]{#5}{@ProjOrth#4on#2#3}% - \Pst@SegmentMark[]{@ProjOrth#4on#2#3}{#4}% - \fi% - \egroup% -}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% mediator line -%% #2 #3 -> nodes defining the segment -%% #4 -> middle of the segment -%% #5 -> node belonging to the mediator line -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\pstMediatorAB{\@ifnextchar[\Pst@MediatorAB{\Pst@MediatorAB[]}}% -\def\Pst@MediatorAB[#1]#2#3#4#5{% - \bgroup\setkeys{psset}{#1}% % Affectation of local parameters - \bgroup - \ifx\psk@PointSymbolA\@undef\else\psset{PointSymbol=\psk@PointSymbolA}\fi - \ifx\psk@PointNameA\@undef\else\psset{PointName=\psk@PointNameA}\fi - \Pst@HomO[HomCoef=.5]{#2}{#3}{#4} - \egroup - \bgroup - \ifx\psk@PointSymbolB\@undef\else\psset{PointSymbol=\psk@PointSymbolB}\fi - \ifx\psk@PointNameB\@undef\else\psset{PointName=\psk@PointNameB}\fi - \Pst@Rotation[RotAngle=90]{#4}{#3}{#5}% - \egroup - \ifPst@CodeFig - \psset{linecolor=\psk@CodeFigColor} - \Pst@RightAngle[]{B}{#4}{#5} - \Pst@SegmentMark[]{#2}{#4}% - \Pst@SegmentMark[]{#4}{#3}% - \fi - \ncline{#4}{#5} - \egroup -} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% bissectrice -%% #2 #3 #4 -> nodes defining the angle in #3 anti-clockwise -%% #5 -> node belonging to the bissectrice -%% #6 -> label -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\pstBissectBAC{\@ifnextchar[\Pst@BissectBAC{\Pst@BissectBAC[]}}% -\def\Pst@BissectBAC[#1]#2#3#4#5{% - \bgroup\setkeys{psset}{#1}% % Affectation of local parameters - \rput(#3){% - \rput(! - tx@EcldDict begin /N@#4 GetNode exch Atan /N@#2 GetNode end - 2 copy 5 2 roll exch Atan 2 copy lt { exch 360 sub exch } if sub - 2 div tx@EcldDict begin Rotate end - \pst@number\psyunit div exch \pst@number\psxunit div exch)% - {\pnode{#5}}% - \ifx\psk@PointSymbol\@none\else{\Pst@geonodelabel{#5}}\fi% - \ncline{#3}{#5}% - }%% end \rput - \egroup% -}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% outside bissectrice -%% #2 #3 #4 -> nodes defining the angle in #3 anti-clockwise -%% #5 -> node belonging to the bissectrice -%% #6 -> label -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\pstOutBissectBAC{\@ifnextchar[\Pst@OutBisBAC{\Pst@OutBisBAC[]}}% -\def\Pst@OutBisBAC[#1]#2#3#4#5{% - \bgroup\setkeys{psset}{#1}% % Affectation of local parameters - \rput(#3){% - \rput(! - tx@EcldDict begin /N@#4 GetNode exch Atan /N@#2 GetNode end - 2 copy 5 2 roll exch Atan 2 copy lt { exch 360 sub exch } if sub - 2 div 90 add tx@EcldDict begin Rotate end - \pst@number\psyunit div exch \pst@number\psxunit div exch)% - {\pnode{#5}}% - \ifx\psk@PointSymbol\@none\else{\Pst@geonodelabel{#5}}\fi% - \ncline{#3}{#5}% - }%% end \rput - \egroup% -}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Creation of a point according to a curvilign abscissa -%% #2 -> center of the circle -%% #3 -> point origin of the circle -%% #4 -> point to be placed -\def\pstCurvAbsNode{\@ifnextchar[\Pst@CurvAbsNode{\Pst@CurvAbsNode[]}}% -\def\Pst@CurvAbsNode[#1]#2#3#4#5{% - \bgroup\setkeys{psset}{#1}% % Affectation of local parameters - \Pst@@CurvAbsNode{#2}{#3}{#4}{#5}% - \ifx\psk@PointSymbol\@none\else{\Pst@geonodelabel{#4}}\fi% - \egroup% - %% AJOUTER LE MARQUAGE CodeFig -}% -\def\Pst@@CurvAbsNode#1#2#3#4{% - \rput(#1){% - \rput(! - tx@EcldDict begin - /N@#2 GetNode 2 copy 0 0 ABDist #4 exch div Pi div 180 mul - \ifPst@CurvAbsNeg neg \fi Rotate - end - \pst@number\psyunit div exch \pst@number\psxunit div exch)% - {\pnode{#3}}% - }%% end \rput -}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% GENERIC CURVES -%% #2 -> Radical name -%% #3 -> initial counter value -%% #4 -> maximal counter value -\def\pstGenericCurve{\@ifnextchar[\Pst@GenericCurve{\Pst@GenericCurve[]}}% -\def\Pst@GenericCurve[#1]#2#3#4{% - \bgroup\setkeys{psset}{#1}% % Affectation of local parameters - \edef\@@GenCourbe{\ifx\psk@GenCurvFirst\@none\else(\psk@GenCurvFirst)\fi}% - \pst@cnth=#4 - \advance\pst@cnth by -#3%\@GenCurve% del DR - \advance\pst@cnth by \psk@GenCurvInc%1 modif DR 020225 - \divide\pst@cnth by \psk@GenCurvInc - \multido{\i@GenCurve=#3+\psk@GenCurvInc}{\pst@cnth}{% - \xdef\@@GenCourbe{\@@GenCourbe(#2\i@GenCurve)}} - \edef\@@GenCourbe{% - \@@GenCourbe% - \ifx\psk@GenCurvLast\@none\else(\psk@GenCurvLast)\fi}% - \psset{showpoints=true} - \expandafter\pscurve\@@GenCourbe - \egroup% -}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Parallel line -%% #2 #3 -> nodes defining the line -%% #3 -> antecedent node -%% #4 -> node name of the image -%% #5 -> label -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Orthogonal line -%% #2 #3 -> nodes defining the line -%% #3 -> antecedent node -%% #4 -> node name of the image -%% #5 -> label -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Special macros for parameters -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Distance between two points -\def\pstDistAB#1#2{ - tx@EcldDict begin /N@#1 GetNode /N@#2 GetNode ABDist end - \ifx\psk@DistCoef\@none\else - \psk@DistCoef\space mul - \fi -} -%% Distance specified with a number -\def\pstDistVal#1{ - #1 \pst@number\psxunit mul - \ifx\psk@DistCoef\@none\else - \psk@DistCoef\space mul - \fi -} -%% angle defined by three points -\def\pstAngleAOB#1#2#3{ - tx@EcldDict begin /N@#3 GetNode /N@#2 GetNode end - 2 copy 6 2 roll - tx@EcldDict begin ABVect end exch Atan - dup 0 lt { 360 add } if - tx@EcldDict begin /N@#1 GetNode end - 5 -2 roll tx@EcldDict begin ABVect end exch Atan - dup 0 lt { 360 add } if -% 2 copy lt { exch 360 sub exch } if - sub - \ifx\psk@AngleCoef\@none\else - \psk@AngleCoef\space mul - \fi -} -%% END: pst-euclide.tex -%%% Local Variables: -%%% mode: latex -%%% TeX-master: t -%%% End: |