From f478b27f4c3e827a33448774c884200ea9bcbbd9 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 18 May 2014 21:48:17 +0000 Subject: pst-eucl (18may14) git-svn-id: svn://tug.org/texlive/trunk@34104 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/generic/pst-eucl/Changes | 1 + .../doc/generic/pst-eucl/Examples/abscur.tex | 3 - .../doc/generic/pst-eucl/Examples/abscur_in.tex | 4 - .../doc/generic/pst-eucl/Examples/angle.tex | 4 - .../doc/generic/pst-eucl/Examples/angle_in.tex | 11 - .../doc/generic/pst-eucl/Examples/arc.tex | 4 - .../doc/generic/pst-eucl/Examples/arc_in.tex | 7 - .../doc/generic/pst-eucl/Examples/astro.tex | 3 - .../doc/generic/pst-eucl/Examples/astro_in.tex | 7 - .../doc/generic/pst-eucl/Examples/bissec.tex | 3 - .../doc/generic/pst-eucl/Examples/bissec_in.tex | 5 - .../doc/generic/pst-eucl/Examples/ccirc.tex | 3 - .../doc/generic/pst-eucl/Examples/ccirc_in.tex | 3 - .../doc/generic/pst-eucl/Examples/cercle.tex | 4 - .../doc/generic/pst-eucl/Examples/cercle_in.tex | 8 - .../doc/generic/pst-eucl/Examples/cinscex.pdf | Bin 6349 -> 0 bytes .../doc/generic/pst-eucl/Examples/cinscex.tex | 7 - .../doc/generic/pst-eucl/Examples/cinscex_in.tex | 50 - .../doc/generic/pst-eucl/Examples/curvetype.tex | 7 - .../doc/generic/pst-eucl/Examples/curvetype_in.tex | 10 - .../doc/generic/pst-eucl/Examples/cyclo.pdf | Bin 5113 -> 0 bytes .../doc/generic/pst-eucl/Examples/cyclo.tex | 7 - .../doc/generic/pst-eucl/Examples/cycloO.tex | 7 - .../doc/generic/pst-eucl/Examples/cyclo_in.tex | 28 - .../doc/generic/pst-eucl/Examples/delto.tex | 9 - .../doc/generic/pst-eucl/Examples/droite.tex | 4 - .../doc/generic/pst-eucl/Examples/droite_in.tex | 3 - .../doc/generic/pst-eucl/Examples/envcardi.tex | 3 - .../doc/generic/pst-eucl/Examples/envcardi_in.tex | 8 - .../doc/generic/pst-eucl/Examples/envellipse.tex | 7 - .../generic/pst-eucl/Examples/envellipse_in.tex | 9 - .../doc/generic/pst-eucl/Examples/euler.tex | 8 - .../doc/generic/pst-eucl/Examples/euler_in.tex | 28 - .../doc/generic/pst-eucl/Examples/fracthom.tex | 9 - .../doc/generic/pst-eucl/Examples/fracthom_in.tex | 13 - .../doc/generic/pst-eucl/Examples/gal_biss.tex | 5 - .../doc/generic/pst-eucl/Examples/gal_biss_in.tex | 15 - .../doc/generic/pst-eucl/Examples/gauss.tex | 8 - .../doc/generic/pst-eucl/Examples/gauss_in.tex | 49 - .../doc/generic/pst-eucl/Examples/gencur.tex | 3 - .../doc/generic/pst-eucl/Examples/gencur_in.tex | 5 - .../doc/generic/pst-eucl/Examples/geohyper.tex | 7 - .../doc/generic/pst-eucl/Examples/geohyper_in.tex | 38 - .../doc/generic/pst-eucl/Examples/geonode.tex | 3 - .../doc/generic/pst-eucl/Examples/geonode_in.tex | 13 - .../doc/generic/pst-eucl/Examples/german_ra.tex | 3 - .../doc/generic/pst-eucl/Examples/german_ra_in.tex | 3 - .../doc/generic/pst-eucl/Examples/grav.tex | 3 - .../doc/generic/pst-eucl/Examples/grav_in.tex | 2 - .../doc/generic/pst-eucl/Examples/homothetie.tex | 4 - .../generic/pst-eucl/Examples/homothetie_in.tex | 6 - .../doc/generic/pst-eucl/Examples/hyperbole.tex | 8 - .../doc/generic/pst-eucl/Examples/hyperbole_in.tex | 54 - .../doc/generic/pst-eucl/Examples/hypocyclo.tex | 21 - .../doc/generic/pst-eucl/Examples/interCC.tex | 3 - .../generic/pst-eucl/Examples/interCC_bis_in.tex | 13 - .../doc/generic/pst-eucl/Examples/interCC_in.tex | 9 - .../doc/generic/pst-eucl/Examples/interDC.tex | 3 - .../doc/generic/pst-eucl/Examples/interDC_in.tex | 15 - .../doc/generic/pst-eucl/Examples/interDD.tex | 3 - .../doc/generic/pst-eucl/Examples/interDD_in.tex | 4 - .../doc/generic/pst-eucl/Examples/interFC.tex | 8 - .../doc/generic/pst-eucl/Examples/interFC_in.tex | 12 - .../doc/generic/pst-eucl/Examples/interFF.tex | 8 - .../doc/generic/pst-eucl/Examples/interFF_in.tex | 7 - .../doc/generic/pst-eucl/Examples/interFL.tex | 8 - .../doc/generic/pst-eucl/Examples/interFL_in.tex | 10 - .../doc/generic/pst-eucl/Examples/mediator.tex | 8 - .../doc/generic/pst-eucl/Examples/mediator_in.tex | 9 - .../doc/generic/pst-eucl/Examples/milieu.tex | 3 - .../doc/generic/pst-eucl/Examples/milieu_in.tex | 4 - .../doc/generic/pst-eucl/Examples/oij.tex | 5 - .../doc/generic/pst-eucl/Examples/oij_in.tex | 12 - .../doc/generic/pst-eucl/Examples/orthocentre.tex | 3 - .../generic/pst-eucl/Examples/orthocentre_in.tex | 7 - .../doc/generic/pst-eucl/Examples/orthoethyper.tex | 7 - .../generic/pst-eucl/Examples/orthoethyper_in.tex | 16 - .../doc/generic/pst-eucl/Examples/parabole.tex | 4 - .../doc/generic/pst-eucl/Examples/parabole_in.tex | 24 - .../doc/generic/pst-eucl/Examples/projection.tex | 4 - .../generic/pst-eucl/Examples/projection_in.tex | 5 - .../doc/generic/pst-eucl/Examples/ptfermat.tex | 7 - .../doc/generic/pst-eucl/Examples/ptfermat_in.tex | 17 - .../doc/generic/pst-eucl/Examples/remarq.tex | 8 - .../doc/generic/pst-eucl/Examples/remarq_in.tex | 26 - .../doc/generic/pst-eucl/Examples/rotation.tex | 4 - .../doc/generic/pst-eucl/Examples/rotation_in.tex | 8 - .../doc/generic/pst-eucl/Examples/segmentmark.tex | 3 - .../generic/pst-eucl/Examples/segmentmark_in.tex | 9 - .../doc/generic/pst-eucl/Examples/symcentrale.tex | 4 - .../generic/pst-eucl/Examples/symcentrale_in.tex | 7 - .../generic/pst-eucl/Examples/symorthogonale.tex | 4 - .../pst-eucl/Examples/symorthogonale_in.tex | 8 - .../doc/generic/pst-eucl/Examples/tg1c.tex | 7 - .../doc/generic/pst-eucl/Examples/tg1c_in.tex | 8 - .../doc/generic/pst-eucl/Examples/tg2c.tex | 7 - .../doc/generic/pst-eucl/Examples/tg2c_in.tex | 18 - .../doc/generic/pst-eucl/Examples/translation.tex | 4 - .../generic/pst-eucl/Examples/translation_in.tex | 7 - .../doc/generic/pst-eucl/Examples/triangle.ps | 1423 -------------- .../doc/generic/pst-eucl/Examples/triangle.tex | 4 - .../doc/generic/pst-eucl/Examples/triangle_in.tex | 3 - .../doc/generic/pst-eucl/euclide-english.tex | 1177 ----------- Master/texmf-dist/doc/generic/pst-eucl/euclide.sty | 138 -- .../doc/generic/pst-eucl/euclide_english.ist | 10 - .../doc/generic/pst-eucl/euclide_macros.ist | 33 - .../doc/generic/pst-eucl/pst-eucl-doc.bib | 121 ++ .../doc/generic/pst-eucl/pst-eucl-doc.pdf | Bin 336649 -> 500461 bytes .../doc/generic/pst-eucl/pst-eucl-doc.tex | 2040 ++++++++++++++++++++ .../texmf-dist/tex/generic/pst-eucl/pst-eucl.tex | 374 ++-- Master/texmf-dist/tex/latex/pst-eucl/pst-eucl.sty | 5 +- 111 files changed, 2406 insertions(+), 3829 deletions(-) delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/abscur.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/abscur_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/angle.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/angle_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/arc.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/arc_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/astro.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/astro_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/bissec.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/bissec_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/ccirc.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/ccirc_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/cercle.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/cercle_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/cinscex.pdf delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/cinscex.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/cinscex_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/curvetype.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/curvetype_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/cyclo.pdf delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/cyclo.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/cycloO.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/cyclo_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/delto.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/droite.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/droite_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/envcardi.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/envcardi_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/envellipse.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/envellipse_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/euler.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/euler_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/fracthom.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/fracthom_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/gal_biss.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/gal_biss_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/gauss.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/gauss_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/gencur.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/gencur_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/geohyper.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/geohyper_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/geonode.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/geonode_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/german_ra.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/german_ra_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/grav.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/grav_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/homothetie.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/homothetie_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/hyperbole.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/hyperbole_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/hypocyclo.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/interCC.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/interCC_bis_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/interCC_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/interDC.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/interDC_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/interDD.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/interDD_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/interFC.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/interFC_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/interFF.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/interFF_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/interFL.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/interFL_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/mediator.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/mediator_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/milieu.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/milieu_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/oij.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/oij_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/orthocentre.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/orthocentre_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/orthoethyper.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/orthoethyper_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/parabole.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/parabole_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/projection.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/projection_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/ptfermat.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/ptfermat_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/remarq.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/remarq_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/rotation.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/rotation_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/segmentmark.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/segmentmark_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/symcentrale.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/symcentrale_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/symorthogonale.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/symorthogonale_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/tg1c.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/tg1c_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/tg2c.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/tg2c_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/translation.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/translation_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/triangle.ps delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/triangle.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/Examples/triangle_in.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/euclide-english.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/euclide.sty delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/euclide_english.ist delete mode 100644 Master/texmf-dist/doc/generic/pst-eucl/euclide_macros.ist create mode 100644 Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.bib create mode 100644 Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.tex (limited to 'Master') diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Changes b/Master/texmf-dist/doc/generic/pst-eucl/Changes index 9c62a622188..9ea58ab5be3 100644 --- a/Master/texmf-dist/doc/generic/pst-eucl/Changes +++ b/Master/texmf-dist/doc/generic/pst-eucl/Changes @@ -4,6 +4,7 @@ pst-eucl.pro -------- pst-eucl.tex -------- +1.51 2014/05/17 - added two new functions for angles and distances 1.50 2014/04/05 - added MarkHashLength|Sep (hv) 1.49 2014/03/17 - allow algebraic mode for interlines (hv) 1.48 2013/05/02 - take \MarkAngle into account (hv) diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/abscur.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/abscur.tex deleted file mode 100644 index 9e41c7b183a..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/abscur.tex +++ /dev/null @@ -1,3 +0,0 @@ -\begin{pspicture}(-2.5,-2.5)(2.5,2.5)%\psgrid% -\input{Exemples/abscur_in} -\end{pspicture} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/abscur_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/abscur_in.tex deleted file mode 100644 index ddb433970a7..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/abscur_in.tex +++ /dev/null @@ -1,4 +0,0 @@ -\pstGeonode{O}(2,0){A} -\pstCircleOA{O}{A} -\pstCurvAbsNode{O}{A}{M_1}{\pstDistVal{5}} -\pstCurvAbsNode[CurvAbsNeg=true]{O}{A}{M_2}{\pstDistAB{A}{M_1}} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/angle.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/angle.tex deleted file mode 100644 index 22856df59d4..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/angle.tex +++ /dev/null @@ -1,4 +0,0 @@ -%%%% -*-mode: latex; TeX-master: "euclide.tex" -*- -\begin{pspicture}(-2,-2)(2,2)\psgrid - \input{Exemples/angle_in} -\end{pspicture} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/angle_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/angle_in.tex deleted file mode 100644 index c3ec42b5481..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/angle_in.tex +++ /dev/null @@ -1,11 +0,0 @@ -\psset{PointSymbol=none} -\pstTriangle(2;15){A}(2;85){B}(2;195){C} -\psset{PointName=none} -\pstTriangle[PointNameA=default](2;-130){B'}(2;15){A'}(2;195){C'} -\pstTriangle[PointNameA=default](2;-55){B''}(2;15){A''}(2;195){C''} -\pstRightAngle[linecolor=red]{C}{B}{A} -\pstRightAngle[linecolor=blue, RightAngleType=suisseromand]{A}{B'}{C} -\pstRightAngle[linecolor=magenta, RightAngleType=german]{A}{B''}{C} -\psset{arcsep=\pslinewidth} -\pstMarkAngle[linecolor=cyan, Mark=MarkHash]{A}{C}{B}{$\theta$} -\pstMarkAngle[linecolor=red, arrows=->]{B}{A}{C}{$\gamma$} \ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/arc.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/arc.tex deleted file mode 100644 index 2679d767050..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/arc.tex +++ /dev/null @@ -1,4 +0,0 @@ -%%%% -*-mode: latex; TeX-master: "euclide.tex" -*- -\begin{pspicture}(-2,-2)(2,2)\psgrid - \input{Exemples/arc_in} -\end{pspicture} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/arc_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/arc_in.tex deleted file mode 100644 index 48d4ec1112a..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/arc_in.tex +++ /dev/null @@ -1,7 +0,0 @@ -\pstGeonode[PosAngle={180,0}](1.5;24){A}(1.8;-31){B} -\pstGeonode{O} -\psset{arrows=->, arrowscale=2} -\pstArcOAB[linecolor=red, linewidth=1.5\pslinewidth]{O}{A}{B} -\pstArcOAB[linecolor=blue, linewidth=1.5\pslinewidth]{O}{B}{A} -\pstArcnOAB[linecolor=green]{O}{A}{B} -\pstArcnOAB[linecolor=magenta]{O}{B}{A} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/astro.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/astro.tex deleted file mode 100644 index 745b2cae546..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/astro.tex +++ /dev/null @@ -1,3 +0,0 @@ -\begin{pspicture}[shift=*](-4.5,-4)(4.5,4.5)%\psgrid - \input{Exemples/astro_in} -\end{pspicture} \ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/astro_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/astro_in.tex deleted file mode 100644 index 00e490b4aaa..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/astro_in.tex +++ /dev/null @@ -1,7 +0,0 @@ -\HypoCyclo[4]{4}{1}{27} -\psset{linecolor=blue, linewidth=1.5\pslinewidth} -%% il est préférable de mettre les quatre branches séparément à cause -%% des points de rebroussement -\pstGenericCurve[GenCurvFirst=P]{N}{1}{7} -\pstGenericCurve{N}{7}{14}\pstGenericCurve{N}{14}{21} -\pstGenericCurve[GenCurvLast=P]{N}{21}{27} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/bissec.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/bissec.tex deleted file mode 100644 index b9107309c36..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/bissec.tex +++ /dev/null @@ -1,3 +0,0 @@ -\begin{pspicture}(6,6)\psgrid - \input{Exemples/bissec_in} -\end{pspicture} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/bissec_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/bissec_in.tex deleted file mode 100644 index 31b8a33b525..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/bissec_in.tex +++ /dev/null @@ -1,5 +0,0 @@ -\psset{CurveType=polyline,linecolor=red} -\pstGeonode[PosAngle={180,-75,45}](1,4){B}(4,1){A}(5,4){C} -\pstBissectBAC[linecolor=blue]{C}{A}{B}{A'} -\pstOutBissectBAC[linecolor=green, PosAngle=180] - {C}{A}{B}{A''} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/ccirc.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/ccirc.tex deleted file mode 100644 index fe62b0dd64b..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/ccirc.tex +++ /dev/null @@ -1,3 +0,0 @@ -\begin{pspicture}(6,6)\psgrid - \input{Exemples/ccirc_in} -\end{pspicture} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/ccirc_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/ccirc_in.tex deleted file mode 100644 index c1017a79b25..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/ccirc_in.tex +++ /dev/null @@ -1,3 +0,0 @@ -\pstTriangle[PointSymbol=none](4,1){A}(1,3){B}(5,5){C} -\pstCircleABC[CodeFig=true, CodeFigColor=blue, - linecolor=red, PointSymbol=none]{A}{B}{C}{O} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/cercle.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/cercle.tex deleted file mode 100644 index 57db2620e46..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/cercle.tex +++ /dev/null @@ -1,4 +0,0 @@ -%%%% -*-mode: latex; TeX-master: "euclide.tex" -*- -\begin{pspicture}[shift=*](-4,-4)(5,3)\psgrid% - \input{Exemples/cercle_in.tex} -\end{pspicture} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/cercle_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/cercle_in.tex deleted file mode 100644 index ca1a3f1b369..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/cercle_in.tex +++ /dev/null @@ -1,8 +0,0 @@ -\psset{linewidth=2\pslinewidth} -\pstGeonode[PosAngle={0,-135,90},PointSymbol={*,*,square}](1,0){A}(-2,-1){B}(0,1){C} -\pstCircleOA[linecolor=red]{A}{B} -\pstCircleOA[linecolor=green, DistCoef=2 3 div, Radius=\pstDistAB{A}{C}]{A}{} -\pstCircleOA[linecolor=blue, Radius=\pstDistAB{B}{C}]{A}{} -\pstCircleOA[linecolor=Sepia, Radius=\pstDistAB{A}{C}]{B}{} -\pstCircleOA[linecolor=Aquamarine, Diameter=\pstDistAB{A}{C}]{B}{} -\pstCircleAB[linecolor=RoyalBlue]{B}{C} \ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/cinscex.pdf b/Master/texmf-dist/doc/generic/pst-eucl/Examples/cinscex.pdf deleted file mode 100644 index d31dec7c843..00000000000 Binary files a/Master/texmf-dist/doc/generic/pst-eucl/Examples/cinscex.pdf and /dev/null differ diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/cinscex.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/cinscex.tex deleted file mode 100644 index 011b1332038..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/cinscex.tex +++ /dev/null @@ -1,7 +0,0 @@ -\begin{pspicture}(-6,-5)(11,15)%\psgrid - \input{Exemples/cinscex_in} -\end{pspicture} -%%% Local Variables: -%%% mode: latex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/cinscex_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/cinscex_in.tex deleted file mode 100644 index f437305fbfa..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/cinscex_in.tex +++ /dev/null @@ -1,50 +0,0 @@ -\psset{PointSymbol=none} -%\psframe(-6,-5)(11,15) -\pstTriangle[linewidth=2\pslinewidth, linecolor=red] - (4,1){A}(0,3){B}(5,5){C} -\psset{linecolor=blue} -\pstBissectBAC[PointSymbol=none, PointName=none]{C}{A}{B}{AB} -\pstBissectBAC[PointSymbol=none, PointName=none]{A}{B}{C}{BB} -\pstBissectBAC[PointSymbol=none, PointName=none]{B}{C}{A}{CB} -\pstInterLL{A}{AB}{B}{BB}{I} -\psset{linecolor=magenta, linestyle=dashed} -\pstProjection{A}{B}{I}[I_C] -\pstLineAB{I}{I_C}\pstRightAngle[linestyle=solid]{A}{I_C}{I} -\pstProjection{A}{C}{I}[I_B] -\pstLineAB{I}{I_B}\pstRightAngle[linestyle=solid]{C}{I_B}{I} -\pstProjection[PosAngle=80]{C}{B}{I}[I_A] -\pstLineAB{I}{IA}\pstRightAngle[linestyle=solid]{B}{I_A}{I} -\pstCircleOA[linecolor=yellow, linestyle=solid]{I}{I_A} -%% BISSECTRICES EXTÉRIEURES -\psset{linecolor=magenta, linestyle=none} -\pstOutBissectBAC[PointSymbol=none, PointName=none]{C}{A}{B}{AOB} -\pstOutBissectBAC[PointSymbol=none, PointName=none]{A}{B}{C}{BOB} -\pstOutBissectBAC[PointSymbol=none, PointName=none]{B}{C}{A}{COB} -\pstInterLL[PosAngle=-90]{A}{AOB}{B}{BOB}{I_1} -\pstInterLL{A}{AOB}{C}{COB}{I_2} -\pstInterLL[PosAngle=90]{C}{COB}{B}{BOB}{I_3} -\psset{linecolor=magenta, linestyle=dashed} -\pstProjection[PointName=I_{1C}]{A}{B}{I_1}[I1C] -\pstLineAB{I_1}{I1C}\pstRightAngle[linestyle=solid]{I_1}{I1C}{A} -\pstProjection[PointName=I_{1B}]{A}{C}{I_1}[I1B] -\pstLineAB{I_1}{I1B}\pstRightAngle[linestyle=solid]{A}{I1B}{I_1} -\pstProjection[PointName=I_{1A}]{C}{B}{I_1}[I1A] -\pstLineAB{I_1}{I1A}\pstRightAngle[linestyle=solid]{I_1}{I1A}{C} -\pstProjection[PointName=I_{2B}]{A}{C}{I_2}[I2B] -\pstLineAB{I_2}{I2B}\pstRightAngle[linestyle=solid]{A}{I2B}{I_2} -\pstProjection[PointName=I_{2C}]{A}{B}{I_2}[I2C] -\pstLineAB{I_2}{I2C}\pstRightAngle[linestyle=solid]{I_2}{I2C}{A} -\pstProjection[PointName=I_{2A}]{B}{C}{I_2}[I2A] -\pstLineAB{I_2}{I2A}\pstRightAngle[linestyle=solid]{C}{I2A}{I_2} -\pstProjection[PointName=I_{3A}]{C}{B}{I_3}[I3A] -\pstLineAB{I_3}{I3A}\pstRightAngle[linestyle=solid]{C}{I3A}{I_3} -\pstProjection[PointName=I_{3C}]{A}{B}{I_3}[I3C] -\pstLineAB{I_3}{I3C}\pstRightAngle[linestyle=solid]{A}{I3C}{I_3} -\pstProjection[PointName=I_{3B}]{C}{A}{I_3}[I3B] -\pstLineAB{I_3}{I3B}\pstRightAngle[linestyle=solid]{I_3}{I3B}{A} -\psset{linecolor=yellow, linestyle=solid} -\pstCircleOA{I_1}{I1C} -\pstCircleOA{I_2}{I2B} -\pstCircleOA{I_3}{I3A} -\psset{linecolor=red, linestyle=solid, nodesepA=-1, nodesepB=-1} -\pstLineAB{I1B}{I3B}\pstLineAB{I1A}{I2A}\pstLineAB{I2C}{I3C} \ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/curvetype.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/curvetype.tex deleted file mode 100644 index a86b641f8d1..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/curvetype.tex +++ /dev/null @@ -1,7 +0,0 @@ -\begin{pspicture}(-5,-5)(10,5)\psgrid - \input{Exemples/curvetype_in.tex} -\end{pspicture} -%%% Local Variables: -%%% mode: latex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/curvetype_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/curvetype_in.tex deleted file mode 100644 index 90d34f4e345..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/curvetype_in.tex +++ /dev/null @@ -1,10 +0,0 @@ -\pstGeonode{O} -\rput(-3,0){\pstGeonode[CurveType=polygon](1,0){A}(1;51.43){B}(1;102.86){C} - (1;154.29){D}(1;205.71){E}(1;257.14){F}(1;308.57){G}} -\rput(-4,-1){\pstGeonode[CurveType=curve](1,3){M}(4,5){N}(6,2){P}(8,5){Q}} -\pstRotation[linecolor=green, RotAngle=100, CurveType=polygon]{O}{A, B, C, D, E, F, G} -\pstHomO[linecolor=red, HomCoef=.3, CurveType=curve]{O}{M,N,P,Q} -\pstTranslation[linecolor=blue, CurveType=polygon]{C}{O}{A', B', C', D', E', F', G'} -\pstSymO[linecolor=yellow, CurveType=curve]{O}{M',N',P',Q'} -\pstOrtSym[linecolor=magenta, CurveType=polygon]{Q}{F''} - {A', B', C', D', E', F', G'}[A''', B''', C''', D''', E''', F''', G'''] \ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/cyclo.pdf b/Master/texmf-dist/doc/generic/pst-eucl/Examples/cyclo.pdf deleted file mode 100644 index 3a5e9f3cdd8..00000000000 Binary files a/Master/texmf-dist/doc/generic/pst-eucl/Examples/cyclo.pdf and /dev/null differ diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/cyclo.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/cyclo.tex deleted file mode 100644 index 80694c50326..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/cyclo.tex +++ /dev/null @@ -1,7 +0,0 @@ -\begin{pspicture}(-2,0)(13,3)%\psgrid% - \input{Exemples/cyclo_in} -\end{pspicture} -%%% Local Variables: -%%% mode: latex -%%% TeX-master: "~/TeX/Inputs/Doc/Euclide/euclide" -%%% End: diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/cycloO.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/cycloO.tex deleted file mode 100644 index bb8ef2b8baa..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/cycloO.tex +++ /dev/null @@ -1,7 +0,0 @@ -\documentclass{minimal} -\usepackage{pst-eucl} -\begin{document} -\begin{pspicture}(-2,0)(13,3)%\psgrid% - \input{Exemples/cyclo_in} -\end{pspicture} -\end{document} \ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/cyclo_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/cyclo_in.tex deleted file mode 100644 index 101c88a1b0b..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/cyclo_in.tex +++ /dev/null @@ -1,28 +0,0 @@ -\providecommand\NbPt{11} -\psset{linewidth=1.2\pslinewidth} -\pstGeonode[PointSymbol={*,none}, PointName={default,none}, PosAngle=180]{M}(0,1){O} -%% 4*pi=12.5663706144 -\pstGeonode(12.5663706144,0){A} -\pstTranslation[PointSymbol=none, PointName=none]{M}{A}{O}[B] -\multido{\nA=1+1}{\NbPt}{% - \pstHomO[HomCoef=\nA\space \NbPt\space 1 add div, - PointSymbol=none, PointName=none]{O}{B}[O\nA] - \pstProjection[PointSymbol=none, PointName=none]{M}{A}{O\nA}[P\nA] - %\pstCircleOA[linestyle=dashed, linecolor=red]{O\n}{P\n} - \pstCurvAbsNode[PointSymbol=square, PointName=none,CurvAbsNeg=true]% - {O\nA}{P\nA}{M\nA}{\pstDistAB{O}{O\nA}} - \ifnum\nA=2 %affichage du second cercle - \bgroup - \pstCircleOA{O\nA}{M\nA} - \psset{linecolor=magenta, linewidth=1.5\pslinewidth} - \pstArcnOAB{O\nA}{P\nA}{M\nA} - \ncline{O\nA}{M\nA}\ncline{P\nA}{M} - \egroup - \fi - }% fin du multido -\psset{linecolor=blue, linewidth=1.5\pslinewidth} -\pstGenericCurve[GenCurvFirst=M]{M}{1}{6} -\pstGenericCurve[GenCurvLast=A]{M}{6}{\NbPt} -%% juste pour la vérification -%\parametricplot[linecolor=green, linewidth=.5\pslinewidth]{0}{12.5663706144} -% {t t 3.1415926 div 180 mul sin sub 1 t 3.1415926 div 180 mul cos sub} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/delto.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/delto.tex deleted file mode 100644 index 7cd379570eb..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/delto.tex +++ /dev/null @@ -1,9 +0,0 @@ -%%%%%%%%%%%%%%%%%%%% -\begin{pspicture}[shift=*](-3.5,-4)(3.5,4)%\psgrid - \HypoCyclo[3]{3}{1}{17} - \psset{linecolor=blue, linewidth=1.5\pslinewidth} - %% il est préférable de mettre les trois branches séparément à cause - %% des points de rebroussement - \pstGenericCurve[GenCurvFirst=P]{N}{1}{6} \pstGenericCurve{N}{6}{12} - \pstGenericCurve[GenCurvLast=P]{N}{12}{17} -\end{pspicture} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/droite.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/droite.tex deleted file mode 100644 index 19595b78b30..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/droite.tex +++ /dev/null @@ -1,4 +0,0 @@ -%%%% -*-mode: latex; TeX-master: "euclide.tex" -*- -\begin{pspicture}(-2,-2)(2,2)\psgrid - \input{Exemples/droite_in} -\end{pspicture} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/droite_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/droite_in.tex deleted file mode 100644 index 0fe249534ca..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/droite_in.tex +++ /dev/null @@ -1,3 +0,0 @@ -\pstGeonode(1,1){A}(-1,-1){B} -\pstLineAB[nodesepA=-.4, nodesepB=-1, linecolor=green]{A}{B} -\pstLineAB[nodesep=.4, linecolor=red]{A}{B} \ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/envcardi.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/envcardi.tex deleted file mode 100644 index 146be669a2e..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/envcardi.tex +++ /dev/null @@ -1,3 +0,0 @@ -\begin{pspicture}(-6,-6)(3.5,6)%\psgrid - \input{Exemples/envcardi_in} -\end{pspicture} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/envcardi_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/envcardi_in.tex deleted file mode 100644 index 80f9058ea5e..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/envcardi_in.tex +++ /dev/null @@ -1,8 +0,0 @@ -\psset{linewidth=0.4\pslinewidth,PointSymbol=x, - nodesep=0,linecolor=magenta} -\pstGeonode[PointName=none]{O}(2,0){O'} -\pstCircleOA[linecolor=black]{O}{O'} -\multido{\n=5+5}{72}{% - \pstGeonode[PointSymbol=none, PointName=none] - (2;\n){M_\n} - \pstCircleOA{M_\n}{O'}} \ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/envellipse.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/envellipse.tex deleted file mode 100644 index 3576839e86e..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/envellipse.tex +++ /dev/null @@ -1,7 +0,0 @@ -\begin{pspicture*}(-6,-6)(6,6) - \input{Exemples/envellipse_in.tex} -\end{pspicture*} -%%% Local Variables: -%%% mode: latex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/envellipse_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/envellipse_in.tex deleted file mode 100644 index 84fa7313884..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/envellipse_in.tex +++ /dev/null @@ -1,9 +0,0 @@ -\psset{linewidth=0.4\pslinewidth,PointSymbol=none, PointName=none} -\pstGeonode[PosAngle=-90, PointSymbol={none,*,none}, PointName={none,default,none}] - {O}(4;132){A}(5,0){O'} -\pstCircleOA{O}{O'} -\multido{\n=5+5}{72}{% - \pstGeonode(5;\n){M_\n} - \pstMediatorAB[nodesep=-15,linecolor=magenta] - {A}{M_\n}{I}{J}}% fin multido - diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/euler.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/euler.tex deleted file mode 100644 index 971aa290bf8..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/euler.tex +++ /dev/null @@ -1,8 +0,0 @@ -\begin{pspicture}(-3,-1.5)(3,2.5)%\psgrid - \psframe(-3,-1.5)(3,2.5) - \input{Exemples/euler_in} -\end{pspicture} -%%% Local Variables: -%%% mode: latex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/euler_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/euler_in.tex deleted file mode 100644 index c96bf0c0675..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/euler_in.tex +++ /dev/null @@ -1,28 +0,0 @@ -\psset{PointSymbol=none} -\pstTriangle(-2,-1){A}(1,2){B}(2,-1){C} -{% encapsulation de modif paramètres - \psset{linestyle=none, PointSymbolB=none, PointNameB=none} - \pstMediatorAB{A}{B}{K}{KP} - \pstMediatorAB{C}{A}{J}{JP} - \pstMediatorAB{B}{C}{I}{IP} -}% fin -\pstInterLL[PointSymbol=square, PosAngle=-170]{I}{IP}{J}{JP}{O} -{% encapsulation de modif paramètres - \psset{nodesep=-.8, linecolor=green} - \pstLineAB{O}{I}\pstLineAB{O}{J}\pstLineAB{O}{K} -}% fin -\psdot[dotstyle=square](O) -\pstProjection{B}{A}{C} -\pstProjection{B}{C}{A} -\pstProjection{A}{C}{B} -\psset{linecolor=blue}\ncline{A}{A'}\ncline{C}{C'}\ncline{B}{B'} -\pstInterLL[PointSymbol=square]{A}{A'}{B}{B'}{H} -% le cercle d'Euler (centre au milieu de [OH]) -\pstMiddleAB[PointSymbol=o, PointName=\omega]{O}{H}{omega} -\pstCircleOA[linecolor=Orange, linestyle=dashed, dash=5mm 1mm]{omega}{B'} -\psset{PointName=none} -% il passe par le milieu des segments joignant l'orthocentre et les sommets -\pstMiddleAB{H}{A}{AH}\pstMiddleAB{H}{B}{BH}\pstMiddleAB{H}{C}{CH} -\pstSegmentMark{H}{AH}\pstSegmentMark{AH}{A} -\psset{SegmentSymbol=wedge}\pstSegmentMark{H}{BH}\pstSegmentMark{BH}{B} -\psset{SegmentSymbol=cup}\pstSegmentMark{H}{CH}\pstSegmentMark{CH}{C} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/fracthom.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/fracthom.tex deleted file mode 100644 index f8119481bc3..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/fracthom.tex +++ /dev/null @@ -1,9 +0,0 @@ -\begin{pspicture}(-2.8,-3)(2.8,3) - \psset{linewidth=.05\pslinewidth} - \input{Exemples/fracthom_in} -\end{pspicture} - -%%% Local Variables: -%%% mode: latex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/fracthom_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/fracthom_in.tex deleted file mode 100644 index 70507b1e97a..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/fracthom_in.tex +++ /dev/null @@ -1,13 +0,0 @@ -\pstGeonode[PosAngle={0,90}](2,2){A_0}(-2,2){B_0}% -\psset{RotAngle=90} -\pstRotation[PosAngle=270]{A_0}{B_0}[D_0] -\pstRotation[PosAngle=180]{D_0}{A_0}[C_0] -\pspolygon(A_0)(B_0)(C_0)(D_0)% -\psset{PointSymbol=none, PointName=none, HomCoef=.2} -\multido{\n=1+1,\i=0+1}{20}{% - \pstHomO[PosAngle=0]{B_\i}{A_\i}[A_\n] - \pstHomO[PosAngle=90]{C_\i}{B_\i}[B_\n] - \pstHomO[PosAngle=180]{D_\i}{C_\i}[C_\n] - \pstHomO[PosAngle=270]{A_\i}{D_\i}[D_\n] - \pspolygon(A_\n)(B_\n)(C_\n)(D_\n)}% fin multido - diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/gal_biss.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/gal_biss.tex deleted file mode 100644 index a53481d9b34..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/gal_biss.tex +++ /dev/null @@ -1,5 +0,0 @@ -\bgroup\psset{unit=.9} -\begin{pspicture}(-1,-1)(5,5)%\psgrid - \input{Exemples/gal_biss_in.tex} -\end{pspicture} -\egroup \ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/gal_biss_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/gal_biss_in.tex deleted file mode 100644 index 34637a4e337..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/gal_biss_in.tex +++ /dev/null @@ -1,15 +0,0 @@ -\psset{PointSymbol=none} -\pstGeonode[PosAngle={180,130,-90}, PointSymbol={default,none}] - (2,0){B}(0,1){O}(1,4){A} -\pstLineAB[nodesepB=-1, linecolor=red]{O}{A} -\pstLineAB[nodesepB=-1, linecolor=red]{O}{B} -\pstInterLC[PointSymbolA=none, PosAngleB=-45]{O}{B}{O}{A}{G}{C} -\psset{arcsepA=-1, arcsepB=-1} -\pstArcOAB[linecolor=green, linestyle=dashed]{O}{C}{A} -\pstInterCC[PointSymbolB=none, PointNameB=none, PosAngleA=100]{A}{O}{C}{O}{O'}{OO} -\pstArcOAB[linecolor=blue, linestyle=dashed]{A}{O'}{O'} -\pstArcOAB[linecolor=blue, linestyle=dashed]{C}{O'}{O'} -\pstLineAB[nodesepB=-1, linecolor=cyan]{O}{O'} -\psset{arcsep=\pslinewidth, linecolor=magenta, Mark=MarkHash} -\pstMarkAngle{C}{O}{O'}{} -\pstMarkAngle[MarkAngleRadius=.5]{O'}{O}{A}{} \ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/gauss.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/gauss.tex deleted file mode 100644 index c86a0577cf8..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/gauss.tex +++ /dev/null @@ -1,8 +0,0 @@ -%% Polygone à 17 côtés -\begin{pspicture}(-5.5,-5.5)(5.5,6)%\psgrid - \input{Exemples/gauss_in} -\end{pspicture} -%%% Local Variables: -%%% mode: latex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/gauss_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/gauss_in.tex deleted file mode 100644 index 683cae02da0..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/gauss_in.tex +++ /dev/null @@ -1,49 +0,0 @@ - \pstGeonode[PosAngle={-90,0}]{O}(5;0){P_1} - \pstCircleOA{O}{P_1} - \pstSymO[PointSymbol=none, PointName=none, CodeFig=false]{O}{P_1}[PP_1] - \ncline[linestyle=solid]{PP_1}{P_1} - \pstRotation[RotAngle=90, PosAngle=90]{O}{P_1}[B] - \pstRightAngle[linestyle=solid]{B}{O}{PP_1}\ncline[linestyle=solid]{O}{B} - \pstHomO[HomCoef=.25]{O}{B}[J] - \ncline{J}{P_1} - \pstBissectBAC[PointSymbol=none, PointName=none]{O}{J}{P_1}{PE1} - \pstBissectBAC[PointSymbol=none, PointName=none]{O}{J}{PE1}{PE2} - \pstInterLL[PosAngle=-90]{O}{P_1}{J}{PE2}{E} - \pstRotation[PosAngle=-90, RotAngle=-45, PointSymbol=none, PointName=none]{J}{E}[PF1] - \pstInterLL[PosAngle=-90]{O}{P_1}{J}{PF1}{F} - \pstMiddleAB[PointSymbol=none, PointName=none]{F}{P_1}{MFP1} - \pstCircleOA{MFP1}{P_1} - \pstInterLC[PointSymbolA=none, PointNameA=none]{O}{B}{MFP1}{P_1}{H}{K} - \pstCircleOA{E}{K} - \pstInterLC{O}{P_1}{E}{K}{N_6}{N_4} - \pstRotation[RotAngle=90, PointSymbol=none, PointName=none]{N_6}{E}[PP_6] - \pstInterLC[PosAngleA=90, PosAngleB=-90, PointNameB=P_{13}] - {PP_6}{N_6}{O}{P_1}{P_6}{P_13} - \pstSegmentMark[SegmentSymbol=wedge]{N_6}{P_6} - \pstSegmentMark[SegmentSymbol=wedge]{P_13}{N_6} - \pstRotation[RotAngle=90, PointSymbol=none, PointName=none]{N_4}{E}[PP_4] - \pstInterLC[PosAngleA=90, PosAngleB=-90, PointNameB=P_{15}] - {N_4}{PP_4}{O}{P_1}{P_4}{P_15} - \pstSegmentMark[SegmentSymbol=cup]{N_4}{P_4} - \pstSegmentMark[SegmentSymbol=cup]{P_15}{N_4} - \pstRightAngle[linestyle=solid]{P_1}{N_6}{P_6} - \pstRightAngle[linestyle=solid]{P_1}{N_4}{P_4} - \pstBissectBAC[PosAngle=90, linestyle=none]{P_4}{O}{P_6}{P_5} - %\pstOrtSym[PosAngle=-90, PointName=P_{14}]{O}{P_1}{P_5}[P_14] - \pstInterCC[PosAngleB=90, PointSymbolA=none, PointNameA=none]{O}{P_1}{P_4}{P_5}{H}{P_3} - %\pstOrtSym[PosAngle=-90, SegmentSymbol=pstslash, PointName=P_{16}] - % {O}{P_1}{P_3}[P_16] - \pstInterCC[PosAngleB=90, PointSymbolA=none, PointNameA=none]{O}{P_1}{P_3}{P_4}{H}{P_2} - %\pstOrtSym[PosAngle=-90, SegmentSymbol=pstslashslashslash, - % PointName=P_{17}]{O}{P_1}{P_2}[P_17] - \pstInterCC[PosAngleA=90, PointSymbolB=none, PointNameB=none]{O}{P_1}{P_6}{P_5}{P_7}{H} - \pstInterCC[PosAngleA=100, PointSymbolB=none, PointNameB=none]{O}{P_1}{P_7}{P_6}{P_8}{H} - \pstInterCC[PosAngleA=135, PointSymbolB=none, PointNameB=none]{O}{P_1}{P_8}{P_7}{P_9}{H} - \pstOrtSym[PosAngle={-90,-90,-90,-100,-135}, %SegmentSymbol={default,pstslash,pstslashhh,circ,times,equiv}, - PointName={P_{17},P_{16},P_{14},P_{12},P_{11},P_{10}}] - {O}{P_1}{P_2,P_3,P_5,P_7,P_8,P_9}[P_17,P_16,P_14,P_12,P_11,P_10] - %\pstOrtSym[PosAngle=-100, SegmentSymbol=times, PointName=P_{11}]{O}{P_1}{P_8}[P_11] - %\pstOrtSym[PosAngle=-135, SegmentSymbol=equiv,PointName=P_{10}]{O}{P_1}{P_9}[P_10] - \pspolygon[linecolor=green, linestyle=solid, linewidth=2\pslinewidth] - (P_1)(P_2)(P_3)(P_4)(P_5)(P_6)(P_7)(P_8)(P_9) - (P_10)(P_11)(P_12)(P_13)(P_14)(P_15)(P_16)(P_17) \ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/gencur.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/gencur.tex deleted file mode 100644 index 8e87479865f..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/gencur.tex +++ /dev/null @@ -1,3 +0,0 @@ -\begin{pspicture}(-2.5,-2.5)(2.5,1)%\psgrid% -\input{Exemples/gencur_in} -\end{pspicture} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/gencur_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/gencur_in.tex deleted file mode 100644 index 8adebdf17dc..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/gencur_in.tex +++ /dev/null @@ -1,5 +0,0 @@ -\psset{unit=.00625} -\pstGeonode{A} -\multido{\n=20+20}{18}{\pstGeonode[PointName=M_{\n}](\n;\n){M_\n}} -\pstGenericCurve[GenCurvFirst=A, GenCurvInc=20, - linecolor=blue, linewidth=.5\pslinewidth]{M_}{20}{360} \ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/geohyper.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/geohyper.tex deleted file mode 100644 index 7f54846c252..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/geohyper.tex +++ /dev/null @@ -1,7 +0,0 @@ -\begin{pspicture}(-5,-5)(5,5) - \input{Exemples/geohyper_in} -\end{pspicture} -%%% Local Variables: -%%% mode: latex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/geohyper_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/geohyper_in.tex deleted file mode 100644 index cbd8887dfa7..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/geohyper_in.tex +++ /dev/null @@ -1,38 +0,0 @@ -\psclip{\pscircle(0,0){4}}%\psgrid - %\newlength{\radius}\setlength{\radius}{0cm} - %\newcounter{rapport}\setcounter{i}{1} - %\whiledo{\value{i}<100}{ - % \setlength{\radius}{4cm*\value{i}} - % \setcounter{rapport}{\value{i}+1} - % \divide\radius by \arabic{rapport} - % \pscircle[linestyle=dotted, linecolor=gray]% - % (0, 0){\radius} - % \setcounter{i}{\value{i}*2} - % } - \pstGeonode(1, 2){M}\pstGeonode(-2,2){N}\pstGeonode(0,-2){P}% - \psset{DrawCirABC=false, PointSymbol=none, PointName=none}% - \pstGeonode(0,0){O}\pstGeonode(4,0){A}\pstCircleOA{O}{A}% - \pstHomO[HomCoef=\pstDistAB{O}{A} 2 mul \pstDistAB{O}{M} sub - \pstDistAB{O}{M} div]{O}{M}[M']% - \pstHomO[HomCoef=\pstDistAB{O}{A} 2 mul \pstDistAB{O}{P} sub - \pstDistAB{O}{P} div]{O}{P}[P']% - \pstHomO[HomCoef=\pstDistAB{O}{A} 2 mul \pstDistAB{O}{N} sub - \pstDistAB{O}{N} div]{O}{N}[N']% - \psset{linecolor=green, linewidth=1.5pt}% - \pstCircleABC{M}{N}{M'}{OmegaMN}\pstArcOAB{OmegaMN}{N}{M}% - \pstCircleABC{M}{P}{M'}{OmegaMP}\pstArcOAB{OmegaMP}{M}{P}% - \pstCircleABC{N}{P}{P'}{OmegaNP}\pstArcOAB{OmegaNP}{P}{N}% - \psset{linecolor=blue} - %% la hauteur issue de M - \pstHomO[HomCoef=\pstDistAB{OmegaNP}{N} 2 mul \pstDistAB{OmegaNP}{M} sub - \pstDistAB{OmegaNP}{M} div]{OmegaNP}{M}[MH'] - \pstCircleABC{M}{M'}{MH'}{OmegaMH}\pstArcOAB{OmegaMH}{MH'}{M} - %% la hauteur issue de N - \pstHomO[HomCoef=\pstDistAB{OmegaMP}{M} 2 mul \pstDistAB{OmegaMP}{N} sub - \pstDistAB{OmegaMP}{N} div]{OmegaMP}{N}[NH'] - \pstCircleABC{N}{N'}{NH'}{OmegaNH}\pstArcOAB{OmegaNH}{N}{NH'} - %% la hauteur issue de P - \pstHomO[HomCoef=\pstDistAB{OmegaMN}{M} 2 mul \pstDistAB{OmegaMN}{P} sub - \pstDistAB{OmegaMN}{P} div]{OmegaMN}{P}[PH'] - \pstCircleABC{P}{P'}{PH'}{OmegaPH}\pstArcOAB{OmegaPH}{P}{PH'} -\endpsclip \ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/geonode.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/geonode.tex deleted file mode 100644 index 8250e34620a..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/geonode.tex +++ /dev/null @@ -1,3 +0,0 @@ -\begin{pspicture}(-2,-2)(3,3)\psgrid - \input{Exemples/geonode_in} -\end{pspicture} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/geonode_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/geonode_in.tex deleted file mode 100644 index 18442d60d66..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/geonode_in.tex +++ /dev/null @@ -1,13 +0,0 @@ -\pstGeonode{A} -\pstGeonode[PosAngle=-135, PointNameSep=1.3](0,3){B_1} -\pstGeonode[PointSymbol=pentagon, dotscale=2, fillstyle=solid, - fillcolor=OliveGreen, PtNameMath=false, - PointName=$B_2$, linecolor=red](-2,1){B2} -\pstGeonode[PosAngle={90,0,-90}, PointSymbol={*,o}, - linestyle=dashed, CurveType=polygon, - PointNameSep={1em,2em,3mm}] - (1,2){M_1}(2,1){M_2}(1,0){M_3} -\pstGeonode[PosAngle={50,100,90}, PointSymbol={*,x,default}, - PointNameSep=3mm, CurveType=curve, - PointName={\alpha,\beta,\gamma,default}] - (-2,0){alpha}(-1,-2){beta}(0,-1){gamma}(2,-1.5){T} \ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/german_ra.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/german_ra.tex deleted file mode 100644 index 7932e69964a..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/german_ra.tex +++ /dev/null @@ -1,3 +0,0 @@ -\begin{pspicture}(0,1)(5,6)%\psgrid - \input{Exemples/german_ra_in.tex} -\end{pspicture} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/german_ra_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/german_ra_in.tex deleted file mode 100644 index 44c7f732198..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/german_ra_in.tex +++ /dev/null @@ -1,3 +0,0 @@ -\pstTriangle(1,2){A}(4,2){B}(1,5){C} -\pstMarkAngle[MarkAngleRadius=.5, LabelSep=.3] - {B}{A}{C}{\boldmath$\cdot$} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/grav.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/grav.tex deleted file mode 100644 index 943eaaee0cd..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/grav.tex +++ /dev/null @@ -1,3 +0,0 @@ -\begin{pspicture}(-3,-2)(2,2)\psgrid - \input{Exemples/grav_in} -\end{pspicture} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/grav_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/grav_in.tex deleted file mode 100644 index af1f1612b88..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/grav_in.tex +++ /dev/null @@ -1,2 +0,0 @@ -\pstTriangle[PointSymbol=none](1,1){A}(-1,-1){B}(-2,1){C} -\pstCGravABC{A}{B}{C}{G} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/homothetie.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/homothetie.tex deleted file mode 100644 index f6c46d21708..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/homothetie.tex +++ /dev/null @@ -1,4 +0,0 @@ -%%%% -*-mode: latex; TeX-master: "euclide.tex" -*- -\begin{pspicture}(-2,-2)(2,2)\psgrid% - \input{Exemples/homothetie_in} -\end{pspicture} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/homothetie_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/homothetie_in.tex deleted file mode 100644 index 9d35f3d848a..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/homothetie_in.tex +++ /dev/null @@ -1,6 +0,0 @@ -\pstGeonode[PosAngle={0,-45}](.5,1){O}(-1.5,-1.2){A}(.5,-.8){B} -\pstHomO[HomCoef=.62, PosAngle=-45]{O}{A,B}[C,D] -\psset{linecolor=green, nodesep=-1} -\pstLineAB{A}{O}\pstLineAB{B}{O} -\psset{linecolor=red, nodesep=-.5} -\pstLineAB{A}{B}\pstLineAB{C}{D} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/hyperbole.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/hyperbole.tex deleted file mode 100644 index d872d9c9475..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/hyperbole.tex +++ /dev/null @@ -1,8 +0,0 @@ -\begin{pspicture}(-4,-4)(4,4)%\psgrid - \psframe(-4,-4)(4,4) - \input{Exemples/hyperbole_in} -\end{pspicture} -%%% Local Variables: -%%% mode: latex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/hyperbole_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/hyperbole_in.tex deleted file mode 100644 index 2f8dfa13a27..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/hyperbole_in.tex +++ /dev/null @@ -1,54 +0,0 @@ -\newcommand{\Sommet}{1.4142135623730951} -\newcommand{\PosFoyer}{2} -\newcommand{\HypAngle}{0} -\setcounter{i}{1} -\newcounter{CoefDiv}\setcounter{CoefDiv}{20} -\newcounter{Inc}\setcounter{Inc}{2} -\newcounter{n}\setcounter{n}{2} -%% rayon des cercles successifs utilisés pour trouver les points de H -%% on choisit \Rii=\Ri+2\Sommet (définition de l'hyperbole) -\newcommand{\Ri}{% c'est du postscript - \PosFoyer\space\Sommet\space sub \arabic{i}\space\arabic{CoefDiv}\space div add} -\newcommand{\Rii}{\Ri\space\Sommet\space 2 mul add} -\pstGeonode[PosAngle=90]{O}(\PosFoyer;\HypAngle){F} -\pstSymO[PosAngle=180]{O}{F}\pstLineAB{F}{F'} -%% TRACÉ DES ASYMPTOTES -\pstCircleOA{O}{F} -%% positionnement des deux sommets de H -\pstGeonode[PosAngle=-135](\Sommet;\HypAngle){S} -\pstGeonode[PosAngle=-45](-\Sommet;\HypAngle){S'} -%% l'intersection de la droite perpendiculaire à (FF') passant par S, -%% coupe les asymptotes sur le cercle de diamètre [FF'] (cette droite est une tangente) -\pstRotation[RotAngle=90, PointSymbol=none]{S}{O}[B] -\pstInterLC[PosAngleA=90, PosAngleB=-90]{S}{B}{O}{F}{A_1}{A_2} -\pstLineAB[nodesepA=-3,nodesepB=-5]{A_1}{O} -\pstLineAB[nodesepA=-3,nodesepB=-5]{A_2}{O} -%% cos(\Psi)=OS/OF (c-a-d \Sommet/\PosFoyer) -%% ici \sqrt(2)/2, donc \Psi=45 => hyperbole équilatère -\pstMarkAngle[LabelSep=.8, MarkAngleRadius=.7, arrows=->, - LabelSep=1.1]{F}{O}{A_1}{$\Psi$} -\ncline[linecolor=red]{A_1}{A_2} -\pstRightAngle[RightAngleSize=.15]{A_1}{S}{O} -\psset{PointName=none} -\whiledo{\value{n}<8}{% - \psset{RadiusA=\pstDistVal{\Ri},RadiusB=\pstDistVal{\Rii},PointSymbol=none} - \pstInterCC{F}{}{F'}{}{M\arabic{n}}{P\arabic{n}} - \pstInterCC{F'}{}{F}{}{M'\arabic{n}}{P'\arabic{n}} - %% bcp de points au début, moins ensuite - %% n -> numéro du point, i -> taille des cercles - %% Inc -> incrément variable de i (2^n) - \stepcounter{n}\addtocounter{i}{\value{Inc}} - \addtocounter{Inc}{\value{Inc}}}%% fin de whiledo -\psset{linecolor=blue} -%% tracé des quatres 1/2 branches de l'hyperbole -\pstGenericCurve[GenCurvFirst=S]{M}{2}{7} -\pstGenericCurve[GenCurvFirst=S]{P}{2}{7} -\pstGenericCurve[GenCurvFirst=S']{M'}{2}{7} -\pstGenericCurve[GenCurvFirst=S']{P'}{2}{7} -%% pour vérif le trace paramètrique -%\parametricplot[linecolor=black, linewidth=.25\pslinewidth]{-1}{1} -% {t dup tx@EcldDict begin sh exch ch end \Sommet\space mul exch -% \PosFoyer\space dup mul \Sommet\space dup mul sub sqrt mul} -%\parametricplot[linecolor=black, linewidth=.25\pslinewidth]{-1}{1} -% {t dup tx@EcldDict begin sh exch ch end neg \Sommet\space mul exch -% \PosFoyer\space dup mul \Sommet\space dup mul sub sqrt mul} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/hypocyclo.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/hypocyclo.tex deleted file mode 100644 index f221a5f5153..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/hypocyclo.tex +++ /dev/null @@ -1,21 +0,0 @@ -\newcommand{\HypoCyclo}[4][100]{% - \def\R{#2}\def\petitR{#3}\def\NbPt{#4}% définitions locales pour lisibilité - %% Selon la valeur de R sur petitR : - %% 4 une astroïde -- 3 une deltoïde -- 2 un diamètre (!) - \def\Anglen{\n\space 360 \NbPt\space 1 add div mul} - \psset{PointSymbol=none,PointName=none} - \pstGeonode[PointSymbol={*,none},PointName={default,none}, PosAngle=0]{O}(\R;0){P} - \pstCircleOA{O}{P} - \pstHomO[HomCoef=\petitR\space\R\space div]{P}{O}[M] - \multido{\n=1+1}{\NbPt}{% - \pstRotation[RotAngle=\Anglen]{O}{M}[M\n] - \rput(M\n){\pstGeonode(\petitR;0){Q}} - \pstRotation[RotAngle=\Anglen]{M\n}{Q}[N] - \pstRotation[RotAngle=\n\space -360 \NbPt\space 1 add div - mul \R\space\petitR\space div mul, PointSymbol=*, PointName=none]% - {M\n}{N}[N\n] - \ifnum\n=#1 - \pstCircleOA{M\n}{N\n}\ncline{M\n}{N\n}% - {\psset{linecolor=red, linewidth=2\pslinewidth} - \pstArcOAB{M\n}{N\n}{N}\pstArcOAB{O}{P}{N}} - \fi}}%fin multido-newcommand diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/interCC.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/interCC.tex deleted file mode 100644 index ccd47eccfe2..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/interCC.tex +++ /dev/null @@ -1,3 +0,0 @@ -\begin{pspicture}(0,-1)(4,3)\psset{dash=2mm 2mm}\psgrid - \input{Exemples/interCC_in} -\end{pspicture} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/interCC_bis_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/interCC_bis_in.tex deleted file mode 100644 index 2d289f26564..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/interCC_bis_in.tex +++ /dev/null @@ -1,13 +0,0 @@ -\pstGeonode[PointName={\Omega,O}](3,-1){Omega}(1,-1){O} -\pstGeonode[PointSymbol=square, PosAngle={-90,90}](0,3){A}(2,2){B} -\psset{PointSymbol=o} -\pstCircleOA[linecolor=red, DistCoef=1 3 10 div add, Radius=\pstDistAB{A}{B}]{O}{} -\pstCircleOA[linecolor=Orange, Diameter=\pstDistAB{A}{B}]{O}{} -\pstCircleOA[linecolor=Violet, Radius=\pstDistAB{A}{B}]{Omega}{} -\pstCircleOA[linecolor=Purple, Diameter=\pstDistAB{A}{B}]{Omega}{} -\pstInterCC[DistCoef=1 3 10 div add, RadiusA=\pstDistAB{A}{B}, - DistCoef=none, RadiusB=\pstDistAB{A}{B}]{O}{}{Omega}{}{D}{E} -\pstInterCC[DiameterA=\pstDistAB{A}{B}, RadiusB=\pstDistAB{A}{B}]{O}{}{Omega}{}{F}{G} -\pstInterCC[DistCoef=1 3 10 div add, RadiusA=\pstDistAB{A}{B}, - DistCoef=none, DiameterB=\pstDistAB{A}{B}]{O}{}{Omega}{}{H}{I} -\pstInterCC[DiameterA=\pstDistAB{A}{B}, DiameterB=\pstDistAB{A}{B}]{O}{}{Omega}{}{J}{K} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/interCC_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/interCC_in.tex deleted file mode 100644 index 6e4f376a05d..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/interCC_in.tex +++ /dev/null @@ -1,9 +0,0 @@ -\rput{10}{% - \pstGeonode[PosAngle={0,-90,-90,90}] - (1,-1){O}(2,1){A}(2,0.1){B}(2.5,1){C}} -\pstCircleOA[linecolor=red]{C}{B} -\pstInterCC[PosAngleA=135, CodeFigA=true, CodeFigAarc=false, - CodeFigColor=magenta]{O}{A}{C}{B}{D}{E} -\pstInterCC[PointSymbolB=none, PointNameB=none, - PosAngleA=170, CodeFigA=true, CodeFigAarc=false, - CodeFigColor=green]{B}{E}{C}{B}{F}{G} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/interDC.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/interDC.tex deleted file mode 100644 index 8049edefa99..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/interDC.tex +++ /dev/null @@ -1,3 +0,0 @@ -\begin{pspicture}(-3,-2)(4,4)\psgrid% - \input{Exemples/interDC_in} -\end{pspicture} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/interDC_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/interDC_in.tex deleted file mode 100644 index f9fc5cfd7ac..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/interDC_in.tex +++ /dev/null @@ -1,15 +0,0 @@ -\pstGeonode[PosAngle={-135,80,0}](-1,0){B}(3,-1){C}(-.9,.5){O}(0,2){A} -\pstGeonode(-2,3){I} -\pstCircleOA[linecolor=red]{O}{A} -\pstInterLC[PosAngle=-80]{C}{B}{O}{A}{D}{E} -\pstInterLC[PosAngleB=60, Radius=\pstDistAB{O}{D}] - {I}{C}{O}{}{F}{G} -\pstInterLC[PosAngleB=180, DistCoef=1.3, - Diameter=\pstDistAB{O}{D}] - {I}{B}{O}{}{H}{J} -\pstCircleOA[linecolor=red, DistCoef=1.3, - Diameter=\pstDistAB{O}{D}]{O}{} -\psset{nodesep=-1} -\pstLineAB[linecolor=green]{E}{C} -\pstLineAB[linecolor=cyan]{I}{C} -\pstLineAB[linecolor=magenta]{J}{I} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/interDD.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/interDD.tex deleted file mode 100644 index 8c8b90667aa..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/interDD.tex +++ /dev/null @@ -1,3 +0,0 @@ -\begin{pspicture}(-1,-2)(4,3)\psset{unit=.8}\psgrid - \input{Exemples/interDD_in} -\end{pspicture} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/interDD_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/interDD_in.tex deleted file mode 100644 index 321bbaa82f3..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/interDD_in.tex +++ /dev/null @@ -1,4 +0,0 @@ -\pstGeonode(0,-1){A}(3,2){B}(3,0){C}(1,2){D} -\pstInterLL[PointSymbol=square]{A}{B}{C}{D}{E} -\psset{linecolor=blue, nodesep=-1} -\pstLineAB{A}{B}\pstLineAB{C}{D} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/interFC.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/interFC.tex deleted file mode 100644 index b61b6c5c03b..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/interFC.tex +++ /dev/null @@ -1,8 +0,0 @@ -\psset{unit=.8} -\begin{pspicture}[shift=*](-3,-4)(3,4)%\psgrid - \input{Exemples/interFC_in} -\end{pspicture} -%%% Local Variables: -%%% mode: latex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/interFC_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/interFC_in.tex deleted file mode 100644 index 3c473da4ee7..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/interFC_in.tex +++ /dev/null @@ -1,12 +0,0 @@ -\def\F{x 180 mul 3.1415926 div cos 2 mul} -\pstGeonode(0.3,-1){O}(2,.5){M} -\ncline[linecolor=blue, arrowscale=2]{->}{O}{M} -\psaxes{->}(0,0)(-3,-3)(3,4) -\psplot[linewidth=2\pslinewidth, linecolor=gray]{-3.14}{3.14}{\F} -\psset{PointSymbol=*} -\pstCircleOA{O}{M} -\psset{PointSymbol=o} -\pstInterFC{\F}{O}{M}{1}{N_0} -\pstInterFC{\F}{O}{M}{-1}{N_1} -\pstInterFC{\F}{O}{M}{-2}{N_2} -\pstInterFC{\F}{O}{M}{2}{N_3} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/interFF.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/interFF.tex deleted file mode 100644 index cff4ced517b..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/interFF.tex +++ /dev/null @@ -1,8 +0,0 @@ -\begin{pspicture}[shift=*](-3,-1)(2,4) - \input{Exemples/interFF_in} -\end{pspicture} - -%%% Local Variables: -%%% mode: latex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/interFF_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/interFF_in.tex deleted file mode 100644 index c05b27959ea..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/interFF_in.tex +++ /dev/null @@ -1,7 +0,0 @@ -\psaxes{->}(0,0)(-2,0)(2,4) -\psset{linewidth=2\pslinewidth} -\psplot[linecolor=gray]{-2}{2}{x 2 exp} -\psplot{-2}{2}{2 x 2 div sub} -\psset{PointSymbol=o} -\pstInterFF{2 x 2 div sub}{x 2 exp}{1}{M_1} -\pstInterFF{2 x 2 div sub}{x 2 exp}{-2}{M_0} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/interFL.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/interFL.tex deleted file mode 100644 index a900ddd0ceb..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/interFL.tex +++ /dev/null @@ -1,8 +0,0 @@ -\psset{unit=.8} -\begin{pspicture}(-3,-1.5)(3,4)%\psgrid - \input{Exemples/interFL_in} -\end{pspicture} -%%% Local Variables: -%%% mode: latex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/interFL_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/interFL_in.tex deleted file mode 100644 index 85a05562651..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/interFL_in.tex +++ /dev/null @@ -1,10 +0,0 @@ -\def\F{x 3 exp 3 div x sub 2 3 div add .0001 add} -\psaxes{->}(0,0)(-3,-1)(3,4) -\psplot[linewidth=2\pslinewidth, linecolor=gray]{-2.5}{2.5}{\F} -\psset{PointSymbol=*} -\pstGeonode[PosAngle={-45,0}](0,-.2){N}(2.5,1){M} -\pstLineAB[nodesepA=-3cm]{N}{M} -\psset{PointSymbol=o} -\pstInterFL{\F}{N}{M}{2}{A} -\pstInterFL[PosAngle=90]{\F}{N}{M}{0}{A'} -\pstInterFL{\F}{N}{M}{-2}{A''} \ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/mediator.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/mediator.tex deleted file mode 100644 index 9a3e17deda0..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/mediator.tex +++ /dev/null @@ -1,8 +0,0 @@ -\begin{pspicture}(6,6)\psgrid - \input{Exemples/mediator_in} -\end{pspicture} - -%%% Local Variables: -%%% mode: latex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/mediator_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/mediator_in.tex deleted file mode 100644 index efc7c53eaa6..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/mediator_in.tex +++ /dev/null @@ -1,9 +0,0 @@ -\pstTriangle[PointSymbol=none](3.5,1){A}(1,4){B}(5,4.2){C} -\psset{linecolor=red, CodeFigColor=red, nodesep=-1} -\pstMediatorAB[PointSymbolA=none]{A}{B}{I}{M_I} -\psset{PointSymbol=none, PointNameB=none} -\pstMediatorAB[CodeFig=true] - {A}{C}{J}{M_J} -\pstMediatorAB[PosAngleA=45, linecolor=blue] - {C}{B}{K}{M_K} - diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/milieu.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/milieu.tex deleted file mode 100644 index 02687041b3c..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/milieu.tex +++ /dev/null @@ -1,3 +0,0 @@ -\begin{pspicture}(-3,-2)(2,2)\psgrid - \input{Exemples/milieu_in} -\end{pspicture} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/milieu_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/milieu_in.tex deleted file mode 100644 index f4d9ae815db..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/milieu_in.tex +++ /dev/null @@ -1,4 +0,0 @@ -\pstTriangle[PointSymbol=none](1,1){A}(-1,-1){B}(-2,1){C} -\pstMiddleAB{A}{B}{C'} -\pstMiddleAB{C}{A}{B'} -\pstMiddleAB{B}{C}{A'} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/oij.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/oij.tex deleted file mode 100644 index 82379389f36..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/oij.tex +++ /dev/null @@ -1,5 +0,0 @@ -{\psset{unit=.7} -\begin{pspicture*}(-4,-4)(4,4)%\psgrid - \input{Exemples/oij_in} -\end{pspicture*} -} \ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/oij_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/oij_in.tex deleted file mode 100644 index 9fb0c9c59a6..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/oij_in.tex +++ /dev/null @@ -1,12 +0,0 @@ -\pstGeonode[PosAngle={-135,-90,180}]{O}(1,0.5){I}(0.5,2){J} -\pstLineAB[nodesep=10]{O}{I} -\pstLineAB[nodesep=10]{O}{J} -\multips(-5,-2.5)(1,0.5){11}{\psline(0,-.15)(0,.15)} -\multips(-2,-8)(0.5,2){9}{\psline(-.15,0)(.15,0)} -\psset{linestyle=dotted}% -\multips(-5,-2.5)(1,0.5){11}{\psline(-10,-40)(10,40)} -\multips(-2,-8)(0.5,2){9}{\psline(-10,-5)(10,5)} -\psset{PointSymbol=x, linestyle=solid} -\pstOIJGeonode[PosAngle={-90,0}, CurveType=curve, - linecolor=red] - (3,1){A}{O}{I}{J}(-2,1){B}(-1,-1.5){C}(2,-1){D} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/orthocentre.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/orthocentre.tex deleted file mode 100644 index 8263598c070..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/orthocentre.tex +++ /dev/null @@ -1,3 +0,0 @@ -\begin{pspicture}(-2,-2)(3.5,2)\psset{CodeFig=true, unit=.75}\psgrid - \input{Exemples/orthocentre_in} -\end{pspicture} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/orthocentre_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/orthocentre_in.tex deleted file mode 100644 index 9dddcf7ac65..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/orthocentre_in.tex +++ /dev/null @@ -1,7 +0,0 @@ -\psset{CodeFig=true, PointSymbol=none} -\pstTriangle[PosAngleA=180](-1,0){A}(3,-1){B}(3,2){C} -\pstProjection[PosAngle=-90]{B}{A}{C} -\pstProjection{B}{C}{A} -\pstProjection[PosAngle=90]{A}{C}{B} -\pstInterLL[PosAngle=135, PointSymbol=square] - {A}{A'}{B}{B'}{H} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/orthoethyper.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/orthoethyper.tex deleted file mode 100644 index 7ebbbf6e642..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/orthoethyper.tex +++ /dev/null @@ -1,7 +0,0 @@ -\begin{pspicture}(-11,-10)(11,10)\psframe(-11,-10)(11,10)%\psgrid - \input{Exemples/orthoethyper_in} -\end{pspicture} -%%% Local Variables: -%%% mode: latex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/orthoethyper_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/orthoethyper_in.tex deleted file mode 100644 index fcb7a737be0..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/orthoethyper_in.tex +++ /dev/null @@ -1,16 +0,0 @@ -\psset{linecolor=blue, linewidth=2\pslinewidth} -\psplot{-10}{-.1}{1 x div} -\psplot{.1}{10}{1 x div} -\psset{PointSymbol=none, linewidth=.5\pslinewidth} -\pstTriangle[linecolor=magenta, PosAngleB=-85, PosAngleC=-90](.2,5){A}(1,1){B}(10,.1){C} -%\pstTriangle[linecolor=magenta, PosAngleB=-135](.2, 5){A}(-1,-1){B}(10,.1){C} -\psset{linecolor=magenta, CodeFig=true, CodeFigColor=red} -\pstProjection{B}{A}{C} -\ncline[nodesepA=-1, linestyle=dashed, linecolor=magenta]{C'}{B} -\pstProjection{B}{C}{A} -\ncline[nodesepA=-1, linestyle=dashed, linecolor=magenta]{A'}{B} -\pstProjection{A}{C}{B} -\pstInterLL[PosAngle=135, PointSymbol=square]{A}{A'}{B}{B'}{H} -\psset{linecolor=green, nodesep=-1} -\pstLineAB{A}{H}\pstLineAB{B'}{H}\pstLineAB{C}{H} -\psdot[dotstyle=square](H) diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/parabole.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/parabole.tex deleted file mode 100644 index 094b6ca2efd..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/parabole.tex +++ /dev/null @@ -1,4 +0,0 @@ -\begin{pspicture}[shift=*](0,.5)(11,10.5)%\psgrid - \psframe(0,.5)(11,10.5) - \input{Exemples/parabole_in.tex} -\end{pspicture} \ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/parabole_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/parabole_in.tex deleted file mode 100644 index 172fb51e113..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/parabole_in.tex +++ /dev/null @@ -1,24 +0,0 @@ -\psset{linewidth=1.2\pslinewidth}\renewcommand{\NbPt}{11} -\pstGeonode[PosAngle={0,-90}](5,4){O}(1,2){A}(9,1.5){B} -\newcommand{\Parabole}[1][100]{% - \pstLineAB[nodesep=-.9, linecolor=green]{A}{B} - \psset{RotAngle=90, PointSymbol=none, PointName=none} - \multido{\n=1+1}{\NbPt}{% - \pstHomO[HomCoef=\n\space \NbPt\space 1 add div]{A}{B}[M\n] - \pstMediatorAB[linestyle=none]{M\n}{O}{M\n_I}{M\n_IP} - \pstRotation{M\n}{A}[M\n_P] - \pstInterLL[PointSymbol=square, PointName=none]{M\n_I}{M\n_IP}{M\n}{M\n_P}{P_\n} - \ifnum\n=#1 - \bgroup - \pstRightAngle{A}{M\n}{M\n_P} - \psset{linewidth=.5\pslinewidth, nodesep=-1, linecolor=blue} - \pstLineAB{M\n_I}{P_\n}\pstLineAB{M\n}{P_\n} - \pstRightAngle{P_\n}{M\n_I}{M\n} - \psset{linecolor=red}\pstSegmentMark{M\n}{M\n_I}\pstSegmentMark{M\n_I}{O} - \egroup - \fi}}%fin multido-newcommand -\Parabole[2]\pstGenericCurve[linecolor=magenta]{P_}{1}{\NbPt} -%% Nouvelle parabole avec un nouveau point B -\pstGeonode[PointSymbol=*, PosAngle=-90](10,3.5){B} -\psset{linestyle=dashed} -\Parabole\pstGenericCurve[linecolor=magenta]{P_}{1}{\NbPt} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/projection.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/projection.tex deleted file mode 100644 index c5b56aaf7e7..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/projection.tex +++ /dev/null @@ -1,4 +0,0 @@ -%%%% -*-mode: latex; TeX-master: "euclide.tex" -*- -\begin{pspicture}(-3,-2)(2,2)\psgrid - \input{Exemples/projection_in} -\end{pspicture} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/projection_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/projection_in.tex deleted file mode 100644 index 1db01dec23a..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/projection_in.tex +++ /dev/null @@ -1,5 +0,0 @@ -\psset{PointSymbol=none,CodeFig=true, CodeFigColor=red} -\pstTriangle(1,1){A}(-2,1){C}(-1,-1){B} -\pstProjection{A}{B}{C}[I] -\pstProjection{A}{C}{B}[J] -\pstProjection{C}{B}{A}[K] diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/ptfermat.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/ptfermat.tex deleted file mode 100644 index dea19de574a..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/ptfermat.tex +++ /dev/null @@ -1,7 +0,0 @@ -\begin{pspicture}(-7,-6)(5,5)%\psgrid - \input{Exemples/ptfermat_in} -\end{pspicture} -%%% Local Variables: -%%% mode: latex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/ptfermat_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/ptfermat_in.tex deleted file mode 100644 index bc4754b3f70..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/ptfermat_in.tex +++ /dev/null @@ -1,17 +0,0 @@ -\psset{PointSymbol=none, PointName=none} -\pstTriangle[PosAngleA=-160, PosAngleB=90, PosAngleC=-25]% - (-3,-2){B}(0,3){A}(2,-1){C}% -\psset{RotAngle=-60} -\pstRotation[PosAngle=-90]{B}{C}[A'] -\pstRotation{C}{A}[B'] -\pstRotation[PosAngle=160]{A}{B}[C'] -\pstLineAB{A}{B'} -\pstLineAB{C}{B'} -\pstLineAB{B}{A'} -\pstLineAB{C}{A'} -\pstLineAB{B}{C'} -\pstLineAB{A}{C'} -\pstCircleABC[linecolor=red]{A}{B}{C'}{O_1} -\pstCircleABC[linecolor=blue]{A}{C}{B'}{O_2} -\pstCircleABC[linecolor=Aquamarine]{A'}{C}{B}{O_3} -\pstInterCC[PointSymbolA=none]{O_1}{A}{O_2}{A}{E}{F} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/remarq.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/remarq.tex deleted file mode 100644 index 5f25c33e1a3..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/remarq.tex +++ /dev/null @@ -1,8 +0,0 @@ -\begin{pspicture}(-3,-2)(3,3)%\psgrid - \input{Exemples/remarq_in} -\end{pspicture} - -%%% Local Variables: -%%% mode: latex -%%% TeX-master: "~/TeX/Inputs/Doc/Euclide/euclide" -%%% End: diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/remarq_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/remarq_in.tex deleted file mode 100644 index 333a7a23e1a..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/remarq_in.tex +++ /dev/null @@ -1,26 +0,0 @@ -\psset{PointSymbol=none} -\pstTriangle[PointSymbol=none](-2,-1){A}(1,2){B}(2,0){C} -% les médiatrices -{% encapsulation de modif paramètres - \psset{linestyle=none, PointNameB=none} - \pstMediatorAB{A}{B}{K}{KP} - \pstMediatorAB[PosAngleA=-40]{C}{A}{J}{JP} - \pstMediatorAB[PosAngleA=75]{B}{C}{I}{IP} -}% fin -\pstInterLL[PointSymbol=square, PosAngle=-170]{I}{IP}{J}{JP}{O} -{% encapsulation de modif paramètres - \psset{nodesep=-.8, linecolor=green} - \pstLineAB{O}{I}\pstLineAB{O}{J}\pstLineAB{O}{K} -}% fin -\pstCircleOA[linecolor=red]{O}{A} -% pour que le symbol de O soit sur et non sous les droites -\psdot[dotstyle=square](O) -% les hauteurs et l'orthocentre -\pstProjection{B}{A}{C} -\pstProjection{B}{C}{A} -\pstProjection{A}{C}{B} -\psset{linecolor=blue}\ncline{A}{A'}\ncline{C}{C'}\ncline{B}{B'} -\pstInterLL[PointSymbol=square]{A}{A'}{B}{B'}{H} -% les médianes et le centre de gravité -\psset{linecolor=magenta}\ncline{A}{I}\ncline{C}{K}\ncline{B}{J} -\pstCGravABC[PointSymbol=square, PosAngle=95]{A}{B}{C}{G} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/rotation.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/rotation.tex deleted file mode 100644 index 8c6e75d59c4..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/rotation.tex +++ /dev/null @@ -1,4 +0,0 @@ -%%%% -*-mode: latex; TeX-master: "euclide.tex" -*- -\begin{pspicture}(-2,-2)(2,2)\psgrid% - \input{Exemples/rotation_in} -\end{pspicture} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/rotation_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/rotation_in.tex deleted file mode 100644 index aa94079d041..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/rotation_in.tex +++ /dev/null @@ -1,8 +0,0 @@ -\psset{arrowscale=2} -\pstGeonode[PosAngle=-135](-1.5,-.2){A}(.5,.2){B}(0,-2){D} -\pstRotation[PosAngle=90, RotAngle=60, CodeFig=true, - CodeFigColor=blue, - TransformLabel=\frac{\pi}{3}]{A}{B}[C] -\pstRotation[AngleCoef=.5, RotAngle=\pstAngleAOB{B}{A}{C}, - CodeFigColor=red, CodeFig=true, - TransformLabel=\frac{1}{2}\widehat{BAC}]{A}{D}[E] \ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/segmentmark.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/segmentmark.tex deleted file mode 100644 index 13820387da8..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/segmentmark.tex +++ /dev/null @@ -1,3 +0,0 @@ -\begin{pspicture}(-2,-2)(2,2)\psgrid - \input{Exemples/segmentmark_in} -\end{pspicture} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/segmentmark_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/segmentmark_in.tex deleted file mode 100644 index ef41b925093..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/segmentmark_in.tex +++ /dev/null @@ -1,9 +0,0 @@ -\rput{18}{% - \pstGeonode[PosAngle={0,90,180,-90}](2,0){A}(2;72){B} - (2;144){C}(2;216){D}(2;288){E}} -\pstSegmentMark{A}{B} -\pstSegmentMark[linecolor=green]{B}{C} -\psset{linewidth=2\pslinewidth} -\pstSegmentMark[linewidth=2\pslinewidth]{C}{D} -\pstSegmentMark{D}{E} -\pstSegmentMark{E}{A} \ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/symcentrale.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/symcentrale.tex deleted file mode 100644 index 25b895898a4..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/symcentrale.tex +++ /dev/null @@ -1,4 +0,0 @@ -%%%% -*-mode: latex; TeX-master: "euclide.tex" -*- -\begin{pspicture}(-2,-2)(2,2)\psgrid - \input{Exemples/symcentrale_in} -\end{pspicture} \ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/symcentrale_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/symcentrale_in.tex deleted file mode 100644 index 3b593412700..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/symcentrale_in.tex +++ /dev/null @@ -1,7 +0,0 @@ -\psset{CodeFig=true} -\pstGeonode[PosAngle={20,90,0}]{O}(-.6,1.5){A}(1.6,-.5){B} -\pstSymO[CodeFigColor=blue, PosAngle={-90,180}]{O}{A, B}[C, D] -%\pstSymO[SegmentSymbol=pstslash, PosAngle=180] -% {O}{B}{D} -\pstLineAB{A}{B}\pstLineAB{C}{D} -\pstLineAB{A}{D}\pstLineAB{C}{B} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/symorthogonale.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/symorthogonale.tex deleted file mode 100644 index 66d51da160e..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/symorthogonale.tex +++ /dev/null @@ -1,4 +0,0 @@ -\psset{unit=.6}% -\begin{pspicture}(0,-2)(8,7)\psgrid - \input{Exemples/symorthogonale_in} -\end{pspicture} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/symorthogonale_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/symorthogonale_in.tex deleted file mode 100644 index ce41b552ffa..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/symorthogonale_in.tex +++ /dev/null @@ -1,8 +0,0 @@ -\pstTriangle(1,3){B}(5,5){C}(4,1){A} -\pstOrtSym{A}{B}{C}[D] -\psset{CodeFig=true} -\pstOrtSym[dash=2mm 2mm, CodeFigColor=red] - {C}{B}{A} -\pstOrtSym[SegmentSymbol=pstslash, linestyle=dotted, - dotsep=3mm, CodeFigColor=blue] - {C}{A}{B} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/tg1c.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/tg1c.tex deleted file mode 100644 index 80c5c562820..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/tg1c.tex +++ /dev/null @@ -1,7 +0,0 @@ -\begin{pspicture}(15,10)%\psgrid - \input{Exemples/tg1c_in.tex} -\end{pspicture} -%%% Local Variables: -%%% mode: latex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/tg1c_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/tg1c_in.tex deleted file mode 100644 index 9b934d0e80b..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/tg1c_in.tex +++ /dev/null @@ -1,8 +0,0 @@ -\pstGeonode(5, 5){O}(14,2){M} -\pstCircleOA[Radius=\pstDistVal{4}]{O}{} -\pstMiddleAB[PointSymbol=none, PointName=none]{O}{M}{O'} -\pstInterCC[RadiusA=\pstDistVal{4}, DiameterB=\pstDistAB{O}{M}, - CodeFigB=true, CodeFigColor=magenta, PosAngleB=45] - {O}{}{O'}{}{A}{B} -\psset{linecolor=red, linewidth=1.3\pslinewidth, nodesep=-2} -\pstLineAB{M}{A}\pstLineAB{M}{B} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/tg2c.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/tg2c.tex deleted file mode 100644 index 9b02a99bd37..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/tg2c.tex +++ /dev/null @@ -1,7 +0,0 @@ -\begin{pspicture}(-2,0)(13,9)%\psgrid - \input{Exemples/tg2c_in} -\end{pspicture} -%%% Local Variables: -%%% mode: latex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/tg2c_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/tg2c_in.tex deleted file mode 100644 index 53015c9f722..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/tg2c_in.tex +++ /dev/null @@ -1,18 +0,0 @@ -\pstGeonode(9,3){O}(3,6){O'}\psset{PointSymbol=none, PointName=none} -\pstCircleOA[Radius=\pstDistVal{3}] - {O}{}\pstCircleOA[Radius=\pstDistVal{1}]{O'}{} -\pstInterLC[Radius=\pstDistVal{3}]{O}{O'}{O}{}{M}{toto} -\pstInterLC[Radius=\pstDistVal{1}]{O}{O'}{O'}{}{M'}{toto} -\pstRotation[RotAngle=30]{O}{M}[N] -\pstRotation[RotAngle=30]{O'}{M'}[N'] -\pstInterLL[PointSymbol=default, PointName=\Omega]{O}{O'}{N}{N'}{Omega} -\pstMiddleAB{O}{Omega}{I} -\pstInterCC{I}{O}{O}{M}{A}{B} -\psset{nodesepA=-1, nodesepB=-3, linecolor=blue, linewidth=1.3\pslinewidth} -\pstLineAB[nodesep=-2]{A}{Omega}\pstLineAB[nodesep=-2]{B}{Omega} -\pstRotation[RotAngle=-150]{O'}{M'}[N''] -\pstInterLL[PointSymbol=default, PointName=\Omega']{O}{O'}{N}{N''}{Omega'} -\pstMiddleAB{O}{Omega'}{J} -\pstInterCC{J}{O}{O}{M}{A'}{B'} -\psset{nodesepA=-1, nodesepB=-3, linecolor=red} -\pstLineAB{A'}{Omega'}\pstLineAB{B'}{Omega'} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/translation.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/translation.tex deleted file mode 100644 index 1e71eece32a..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/translation.tex +++ /dev/null @@ -1,4 +0,0 @@ -%%%% -*-mode: latex; TeX-master: "euclide.tex" -*- -\begin{pspicture}(-2,-2)(2,2)\psgrid% - \input{Exemples/translation_in} -\end{pspicture} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/translation_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/translation_in.tex deleted file mode 100644 index a35bd545b00..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/translation_in.tex +++ /dev/null @@ -1,7 +0,0 @@ -\psset{linecolor=green, nodesep=-1, PosAngle=90,arrowscale=2} -\pstGeonode(-1.5,-1.2){A}(.5,-.8){B}(.5,1){C}(-1,0){D}(-2,-2){E} -\pstTranslation{B}{A}{C} -\psset{CodeFig=true, TransformLabel=default} -\pstTranslation{A}{B}{D} -\pstTranslation[DistCoef=1.5]{A}{B}{E} -\pstLineAB{A}{B}\pstLineAB{C}{C'} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/triangle.ps b/Master/texmf-dist/doc/generic/pst-eucl/Examples/triangle.ps deleted file mode 100644 index 8e69bb05ea6..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/triangle.ps +++ /dev/null @@ -1,1423 +0,0 @@ -%!PS-Adobe-2.0 -%%Creator: dvips(k) 5.95b Copyright 2005 Radical Eye Software -%%Title: triangle.dvi -%%Pages: 1 -%%PageOrder: Ascend -%%BoundingBox: 0 0 595 842 -%%DocumentFonts: CMMI10 CMR10 -%%DocumentPaperSizes: a4 -%%EndComments -%DVIPSWebPage: (www.radicaleye.com) -%DVIPSCommandLine: dvips triangle.dvi -%DVIPSParameters: dpi=600 -%DVIPSSource: TeX output 2005.10.05:2257 -%%BeginProcSet: tex.pro 0 0 -%! -/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S -N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 -mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 -0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ -landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize -mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ -matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round -exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ -statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] -N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin -/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array -/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 -array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N -df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A -definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get -}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} -B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr -1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S -/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy -setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask -restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn -/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put -}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ -bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A -mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ -SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ -userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X -1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 -index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N -/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ -/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) -(LaserWriter 16/600)]{A length product length le{A length product exch 0 -exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse -end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask -grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} -imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round -exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto -fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p -delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} -B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ -p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S -rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end - -%%EndProcSet -%%BeginProcSet: pstricks.pro 0 0 -%! -% PostScript prologue for pstricks.tex. -% Version 1.00, 2005/09/18 -% For distribution, see pstricks.tex. -% -/tx@Dict 200 dict def tx@Dict begin -/ADict 25 dict def -/CM { matrix currentmatrix } bind def -/SLW /setlinewidth load def -/CLW /currentlinewidth load def -/CP /currentpoint load def -/ED { exch def } bind def -/L /lineto load def -/T /translate load def -/TMatrix { } def -/RAngle { 0 } def -/Atan { /atan load stopped { pop pop 0 } if } def -/ATAN1 {neg -1 atan 180 sub } def % atan(x) (only one parameter) -/Div { dup 0 eq { pop } { div } ifelse } def % control the division -/NET { neg exch neg exch T } def % change coordinate system to the negative one -/Pyth { dup mul exch dup mul add sqrt } def % Pythagoras, epects 2 parameter -/PtoC { 2 copy cos mul 3 1 roll sin mul } def % Polar to Cartesian -%----------------- hv added 20050516 --------------- -/Pi 3.14159265359 def -/TwoPi 6.28318530718 def -/Euler 2.71828182846 def -/RadtoDeg { 180 mul Pi div } def % convert from radian to degrees -/DegtoRad { Pi mul 180 div } def % viceversa -%----------------- hv end--------------------------- -/PathLength@ { /z z y y1 sub x x1 sub Pyth add def /y1 y def /x1 x def } def -/PathLength { flattenpath /z 0 def - { /y1 ED /x1 ED /y2 y1 def /x2 x1 def - }{ /y ED /x ED PathLength@ } {} { /y y2 def /x x2 def PathLength@ } - /pathforall load stopped { pop pop pop pop } if z } def -/STP { .996264 dup scale } def -/STV { SDict begin normalscale end STP } def -% -%%-------------- DG begin patch 15 ---------------%% -%/DashLine { dup 0 gt { /a .5 def PathLength exch div } { pop /a 1 def -%PathLength } ifelse /b ED /x ED /y ED /z y x add def b a .5 sub 2 mul y -%mul sub z Div round z mul a .5 sub 2 mul y mul add b exch Div dup y mul -%/y ED x mul /x ED x 0 gt y 0 gt and { [ y x ] 1 a sub y mul } { [ 1 0 ] -%0 } ifelse setdash stroke } def -/DashLine { - dup 0 gt { /a .5 def PathLength exch div } { pop /a 1 def PathLength } ifelse - /b ED /x1 ED /y1 ED /x ED /y ED - /z y x add y1 add x1 add def - /Coef b a .5 sub 2 mul y mul sub z Div round - z mul a .5 sub 2 mul y mul add b exch Div def - /y y Coef mul def - /x x Coef mul def - /y1 y1 Coef mul def - /x1 x1 Coef mul def - x1 0 gt y1 0 gt or x 0 gt or y 0 gt and - { [ y x y1 x1 ] 1 a sub y mul } - { [ 1 0 ] 0 } ifelse - setdash stroke -} def -%%-------------- DG end patch 15 ---------------%% -/DotLine { - /b PathLength def - /a ED /z ED /y CLW def - /z y z add def - a 0 gt { - /b b a div def - }{ - a 0 eq { - /b b y sub def - }{ a -3 eq { - /b b y add def } if - } ifelse - } ifelse - [ 0 b b z Div round Div dup 0 le { pop 1 } if ] - a 0 gt { 0 }{ y 2 div a -2 gt { neg }if } ifelse - setdash 1 setlinecap stroke -} def -% -/LineFill { % hv ------------ patch 7 ------------- - gsave - abs /hatchWidthInc ED - abs /hatchSepInc ED - abs CLW add /a ED - a 0 dtransform round exch round exch - 2 copy idtransform - exch Atan rotate - idtransform pop /a ED - .25 .25 itransform pathbbox - /y2 ED - a Div ceiling cvi /x2 ED /y1 ED - a Div cvi /x1 ED /y2 y2 y1 sub def - clip - newpath - 2 setlinecap - systemdict - /setstrokeadjust known { true setstrokeadjust } if - x2 x1 sub 1 add { - x1 a mul y1 moveto 0 y2 rlineto stroke - /x1 x1 1 add - hatchWidthInc 0 gt { CLW add } if - def - hatchSepInc 0 gt hatchWidthInc 0 gt or { - /a a hatchSepInc add def - CLW hatchWidthInc add SLW - } if - } repeat - grestore - pop pop } def -% -%gsave abs CLW add /a ED a 0 dtransform round exch round exch -%2 copy idtransform exch Atan rotate idtransform pop /a ED .25 .25 -%% DG/SR modification begin - Dec. 12, 1997 - Patch 2 -%%itransform translate pathbbox /y2 ED a Div ceiling cvi /x2 ED /y1 ED a -%itransform pathbbox /y2 ED a Div ceiling cvi /x2 ED /y1 ED a -%% DG/SR modification end -%Div cvi /x1 ED /y2 y2 y1 sub def clip newpath 2 setlinecap systemdict -%/setstrokeadjust known { true setstrokeadjust } if x2 x1 sub 1 add { x1 -%% DG/SR modification begin - Jun. 1, 1998 - Patch 3 (from Michael Vulis) -%% a mul y1 moveto 0 y2 rlineto stroke /x1 x1 1 add def } repeat grestore } -%% def -%a mul y1 moveto 0 y2 rlineto stroke /x1 x1 1 add def } repeat grestore -%pop pop } def -%% DG/SR modification end -% -/BeginArrow { ADict begin /@mtrx CM def gsave 2 copy T 2 index sub neg -exch 3 index sub exch Atan rotate newpath } def -/EndArrow { @mtrx setmatrix CP grestore end } def -/Arrow { CLW mul add dup 2 div /w ED mul dup /h ED mul /a ED { 0 h T 1 -1 -scale } if w neg h moveto 0 0 L w h L w neg a neg rlineto gsave fill -grestore } def -/Tbar { CLW mul add /z ED z -2 div CLW 2 div moveto z 0 rlineto stroke 0 -CLW moveto } def -/Bracket { CLW mul add dup CLW sub 2 div /x ED mul CLW add /y ED /z CLW 2 -div def x neg y moveto x neg CLW 2 div L x CLW 2 div L x y L stroke 0 -CLW moveto } def -/RoundBracket { CLW mul add dup 2 div /x ED mul /y ED /mtrx CM def 0 CLW -2 div T x y mul 0 ne { x y scale } if 1 1 moveto .85 .5 .35 0 0 0 -curveto -.35 0 -.85 .5 -1 1 curveto mtrx setmatrix stroke 0 CLW moveto } -def -/SD { 0 360 arc fill } def -/EndDot { { /z DS def } { /z 0 def } ifelse /b ED 0 z DS SD b { 0 z DS -CLW sub SD } if 0 DS z add CLW 4 div sub moveto } def -/Shadow { [ { /moveto load } { /lineto load } { /curveto load } { -/closepath load } /pathforall load stopped { pop pop pop pop CP /moveto -load } if ] cvx newpath 3 1 roll T exec } def -/NArray { aload length 2 div dup dup cvi eq not { exch pop } if /n exch -cvi def } def -/NArray { % holds the coordinates and on top of stack the showpoints boolean - /f ED - counttomark 2 div dup cvi /n ED - n eq not { exch pop } if - f { ] aload /Points ED } { n 2 mul 1 add -1 roll pop } ifelse -} def -/Line { - NArray n 0 eq not - { n 1 eq { 0 0 /n 2 def } if ArrowA /n n 2 sub def - n { Lineto } repeat - CP 4 2 roll ArrowB L pop pop - } if -} def -/Arcto { /a [ 6 -2 roll ] cvx def a r /arcto load stopped { 5 } { 4 } - ifelse { pop } repeat a } def -/CheckClosed { dup n 2 mul 1 sub index eq 2 index n 2 mul 1 add index eq - and { pop pop /n n 1 sub def } if } def -/Polygon { NArray n 2 eq { 0 0 /n 3 def } if n 3 lt { n { pop pop } - repeat } { n 3 gt { CheckClosed } if n 2 mul -2 roll /y0 ED /x0 ED /y1 - ED /x1 ED x1 y1 /x1 x0 x1 add 2 div def /y1 y0 y1 add 2 div def x1 y1 - moveto /n n 2 sub def n { Lineto } repeat x1 y1 x0 y0 6 4 roll Lineto - Lineto pop pop closepath } ifelse } def -/Diamond { - /mtrx CM def - T rotate - /h ED - /w ED - dup 0 eq { pop } { CLW mul neg - /d ED - /a w h Atan def - /h d a sin Div h add def - /w d a cos Div w add def } ifelse - mark w 2 div h 2 div w 0 0 h neg w neg 0 0 h w 2 div h 2 div - /ArrowA { moveto } def - /ArrowB { } def - false Line - closepath mtrx setmatrix } def -% DG modification begin - Jan. 15, 1997 -%/Triangle { /mtrx CM def translate rotate /h ED 2 div /w ED dup 0 eq { -%pop } { CLW mul /d ED /h h d w h Atan sin Div sub def /w w d h w Atan 2 -%div dup cos exch sin Div mul sub def } ifelse mark 0 d w neg d 0 h w d 0 -%d /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx -%setmatrix } def -/Triangle { /mtrx CM def translate rotate /h ED 2 div /w ED dup -CLW mul /d ED /h h d w h Atan sin Div sub def /w w d h w Atan 2 -div dup cos exch sin Div mul sub def mark 0 d w neg d 0 h w d 0 -d /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx -% DG/SR modification begin - Jun. 1, 1998 - Patch 3 (from Michael Vulis) -% setmatrix } def -setmatrix pop } def -% DG/SR modification end -/CCA { /y ED /x ED 2 copy y sub /dy1 ED x sub /dx1 ED /l1 dx1 dy1 Pyth -def } def -/CCA { /y ED /x ED 2 copy y sub /dy1 ED x sub /dx1 ED /l1 dx1 dy1 Pyth -def } def -/CC { /l0 l1 def /x1 x dx sub def /y1 y dy sub def /dx0 dx1 def /dy0 dy1 -def CCA /dx dx0 l1 c exp mul dx1 l0 c exp mul add def /dy dy0 l1 c exp -mul dy1 l0 c exp mul add def /m dx0 dy0 Atan dx1 dy1 Atan sub 2 div cos -abs b exp a mul dx dy Pyth Div 2 div def /x2 x l0 dx mul m mul sub def -/y2 y l0 dy mul m mul sub def /dx l1 dx mul m mul neg def /dy l1 dy mul -m mul neg def } def -/IC { /c c 1 add def c 0 lt { /c 0 def } { c 3 gt { /c 3 def } if } -ifelse /a a 2 mul 3 div 45 cos b exp div def CCA /dx 0 def /dy 0 def } -def -/BOC { IC CC x2 y2 x1 y1 ArrowA CP 4 2 roll x y curveto } def -/NC { CC x1 y1 x2 y2 x y curveto } def -/EOC { x dx sub y dy sub 4 2 roll ArrowB 2 copy curveto } def -/BAC { IC CC x y moveto CC x1 y1 CP ArrowA } def -/NAC { x2 y2 x y curveto CC x1 y1 } def -/EAC { x2 y2 x y ArrowB curveto pop pop } def -/OpenCurve { - NArray n 3 lt - { n { pop pop } repeat } - { BOC /n n 3 sub def n { NC } repeat EOC } ifelse -} def -/AltCurve { { false NArray n 2 mul 2 roll [ n 2 mul 3 sub 1 roll ] aload -/Points ED n 2 mul -2 roll } { false NArray } ifelse n 4 lt { n { pop -pop } repeat } { BAC /n n 4 sub def n { NAC } repeat EAC } ifelse } def -/ClosedCurve { NArray n 3 lt { n { pop pop } repeat } { n 3 gt { -CheckClosed } if 6 copy n 2 mul 6 add 6 roll IC CC x y moveto n { NC } -repeat closepath pop pop } ifelse } def -/SQ { /r ED r r moveto r r neg L r neg r neg L r neg r L fill } def -/ST { /y ED /x ED x y moveto x neg y L 0 x L fill } def -/SP { /r ED gsave 0 r moveto 4 { 72 rotate 0 r L } repeat fill grestore } -def -/FontDot { DS 2 mul dup matrix scale matrix concatmatrix exch matrix -rotate matrix concatmatrix exch findfont exch makefont setfont } def -/Rect { x1 y1 y2 add 2 div moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto -x1 y1 lineto closepath } def -/OvalFrame { x1 x2 eq y1 y2 eq or { pop pop x1 y1 moveto x2 y2 L } { y1 -y2 sub abs x1 x2 sub abs 2 copy gt { exch pop } { pop } ifelse 2 div -exch { dup 3 1 roll mul exch } if 2 copy lt { pop } { exch pop } ifelse -/b ED x1 y1 y2 add 2 div moveto x1 y2 x2 y2 b arcto x2 y2 x2 y1 b arcto -x2 y1 x1 y1 b arcto x1 y1 x1 y2 b arcto 16 { pop } repeat closepath } -ifelse } def -/Frame { CLW mul /a ED 3 -1 roll 2 copy gt { exch } if a sub /y2 ED a add -/y1 ED 2 copy gt { exch } if a sub /x2 ED a add /x1 ED 1 index 0 eq { -pop pop Rect } { OvalFrame } ifelse } def -/BezierNArray { /f ED counttomark 2 div dup cvi /n ED n eq not { exch pop -} if n 1 sub neg 3 mod 3 add 3 mod { 0 0 /n n 1 add def } repeat f { ] -aload /Points ED } { n 2 mul 1 add -1 roll pop } ifelse } def -/OpenBezier { BezierNArray n 1 eq { pop pop } { ArrowA n 4 sub 3 idiv { 6 -2 roll 4 2 roll curveto } repeat 6 2 roll 4 2 roll ArrowB curveto } -ifelse } def -/ClosedBezier { BezierNArray n 1 eq { pop pop } { moveto n 1 sub 3 idiv { -6 2 roll 4 2 roll curveto } repeat closepath } ifelse } def -/BezierShowPoints { gsave Points aload length 2 div cvi /n ED moveto n 1 -sub { lineto } repeat CLW 2 div SLW [ 4 4 ] 0 setdash stroke grestore } -def -/Parab { /y0 exch def /x0 exch def /y1 exch def /x1 exch def /dx x0 x1 -sub 3 div def /dy y0 y1 sub 3 div def x0 dx sub y0 dy add x1 y1 ArrowA -x0 dx add y0 dy add x0 2 mul x1 sub y1 ArrowB curveto /Points [ x1 y1 x0 -y0 x0 2 mul x1 sub y1 ] def } def -/Grid { newpath /a 4 string def /b ED /c ED /n ED cvi dup 1 lt { pop 1 } -if /s ED s div dup 0 eq { pop 1 } if /dy ED s div dup 0 eq { pop 1 } if -/dx ED dy div round dy mul /y0 ED dx div round dx mul /x0 ED dy div -round cvi /y2 ED dx div round cvi /x2 ED dy div round cvi /y1 ED dx div -round cvi /x1 ED /h y2 y1 sub 0 gt { 1 } { -1 } ifelse def /w x2 x1 sub -0 gt { 1 } { -1 } ifelse def b 0 gt { /z1 b 4 div CLW 2 div add def -/Helvetica findfont b scalefont setfont /b b .95 mul CLW 2 div add def } -if systemdict /setstrokeadjust known { true setstrokeadjust /t { } def } -{ /t { transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add -exch itransform } bind def } ifelse gsave n 0 gt { 1 setlinecap [ 0 dy n -div ] dy n div 2 div setdash } { 2 setlinecap } ifelse /i x1 def /f y1 -dy mul n 0 gt { dy n div 2 div h mul sub } if def /g y2 dy mul n 0 gt { -dy n div 2 div h mul add } if def x2 x1 sub w mul 1 add dup 1000 gt { -pop 1000 } if { i dx mul dup y0 moveto b 0 gt { gsave c i a cvs dup -stringwidth pop /z2 ED w 0 gt {z1} {z1 z2 add neg} ifelse h 0 gt {b neg} -{z1} ifelse rmoveto show grestore } if dup t f moveto g t L stroke /i i -w add def } repeat grestore gsave n 0 gt -% DG/SR modification begin - Nov. 7, 1997 - Patch 1 -%{ 1 setlinecap [ 0 dx n div ] dy n div 2 div setdash } -{ 1 setlinecap [ 0 dx n div ] dx n div 2 div setdash } -% DG/SR modification end -{ 2 setlinecap } ifelse /i y1 def /f x1 dx mul -n 0 gt { dx n div 2 div w mul sub } if def /g x2 dx mul n 0 gt { dx n -div 2 div w mul add } if def y2 y1 sub h mul 1 add dup 1000 gt { pop -1000 } if { newpath i dy mul dup x0 exch moveto b 0 gt { gsave c i a cvs -dup stringwidth pop /z2 ED w 0 gt {z1 z2 add neg} {z1} ifelse h 0 gt -{z1} {b neg} ifelse rmoveto show grestore } if dup f exch t moveto g -exch t L stroke /i i h add def } repeat grestore } def -/ArcArrow { /d ED /b ED /a ED gsave newpath 0 -1000 moveto clip newpath 0 -1 0 0 b grestore c mul /e ED pop pop pop r a e d PtoC y add exch x add -exch r a PtoC y add exch x add exch b pop pop pop pop a e d CLW 8 div c -mul neg d } def -/Ellipse { /mtrx CM def T scale 0 0 1 5 3 roll arc mtrx setmatrix } def -% -/ArcAdjust { -% given a target length (targetLength) and an initial angle (angle0) [in the stack], -% let M(angle0)=(rx*cos(angle0),ry*sin(angle0))=(x0,y0). -% This computes an angle t such that (x0,y0) is at distance targetLength from the point M(t)=(rx*cos(t),ry*sin(t)). -% NOTE: this an absolute angle, it does not have to be added or substracted to angle0 -% contrary to TvZ's code. -% To achieve, this, one iterates the following process: start with some angle t, -% compute the point M' at distance targetLength of (x0,y0) on the semi-line [(x0,y0) M(t)]. -% Now take t' (= new angle) so that (0,0) M(t') and M' are aligned. -% -% Another difference with TvZ's code is that we need d (=add/sub) to be defined. -% the value of d = add/sub is used to know on which side we have to move. -% It is only used in the initialisation of the angle before the iteration. -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Input stack: 1: target length 2: initial angle -% variables used : rx, ry, d (=add/sub) -% - /targetLength ED /angle0 ED - /x0 rx angle0 cos mul def - /y0 ry angle0 sin mul def -% we are looking for an angle t such that (x0,y0) is at distance targetLength from the point M(t)=(rx*cos(t),ry*sin(t))) -%initialisation of angle (using 1st order approx = TvZ's code) - targetLength 57.2958 mul - angle0 sin rx mul dup mul - angle0 cos ry mul dup mul - add sqrt div -% if initialisation angle is two large (more than 90 degrees) set it to 90 degrees -% (if the ellipse is very curved at the point where we draw the arrow, the value can be much more than 360 degrees !) -% this should avoid going on the wrong side (more than 180 degrees) or go near -% a bad attractive point (at 180 degrees) - dup 90 ge { pop 90 } if - angle0 exch d -% maximum number of times to iterate the iterative procedure: - 30 -% iterative procedure: takes an angle t on top of stack, computes a better angle (an put it on top of stack) - { dup -% compute distance D between (x0,y0) and M(t) - dup cos rx mul x0 sub dup mul exch sin ry mul y0 sub dup mul add sqrt -% if D almost equals targetLength, we stop - dup targetLength sub abs 1e-5 le { pop exit } if -% stack now contains D t -% compute the point M(t') at distance targetLength of (x0,y0) on the semi-line [(x0,y0) M(t)]: -% M(t')= ( (x(t)-x0)*targetLength/d+x0 , (y(t)-y0)*targetLength/d+y0 ) - exch dup cos rx mul x0 sub exch sin ry mul y0 sub -% stack contains: y(t)-y0, x(t)-x0, d - 2 index Div targetLength mul y0 add ry Div exch - 2 index Div targetLength mul x0 add rx Div -% stack contains x(t')/rx , y(t')/ry , d -% now compute t', and remove D from stack - atan exch pop - } repeat -% we don't look at what happened... in particular, if targetLength is greater than the diameter of the ellipse... -% the final angle will be around /angle0 + 180. maybe we should treat this pathological case... -%after iteration, stack contains an angle t such that M(t) is the tail of the arrow -% to give back the result as a an angle relative to angle0 we could add the following line: -% angle0 sub 0 exch d -% -} def -% -/EllipticArcArrow { - /d ED % add/sub - /b ED % arrow procedure - /a1 ED % angle - gsave - newpath - 0 -1000 moveto - clip % Set clippath far from arrow. - newpath - 0 1 0 0 b % Draw arrow to determine length. - grestore -% Length of arrow is on top of stack. Next 3 numbers are junk. -% - a1 exch ArcAdjust % Angular position of base of arrow. - /a2 ED - pop pop pop - a2 cos rx mul x add - a2 sin ry mul y add - a1 cos rx mul x add - a1 sin ry mul y add -% Now arrow tip coor and base coor are on stack. - b pop pop pop pop % Draw arrow, and discard coordinates. - a2 CLW 8 div -% change value of d (test it by looking if `` 1 1 d '' gives 2 or not ) - 1 1 d 2 eq { /d { sub } def } { /d { add } def } ifelse - ArcAdjust -% resets original value of d - 1 1 d 2 eq { /d { sub } def } { /d { add } def } ifelse % Adjust angle to give overlap. -} def -%%------------------ tvz/DG/hv (2004-05-10) end -------------------%% -% -/Rot { CP CP translate 3 -1 roll neg rotate NET } def -/RotBegin { tx@Dict /TMatrix known not { /TMatrix { } def /RAngle { 0 } -def } if /TMatrix [ TMatrix CM ] cvx def /a ED a Rot /RAngle [ RAngle -dup a add ] cvx def } def -/RotEnd { /TMatrix [ TMatrix setmatrix ] cvx def /RAngle [ RAngle pop ] -cvx def } def -/PutCoor { gsave CP T CM STV exch exec moveto setmatrix CP grestore } def -/PutBegin { /TMatrix [ TMatrix CM ] cvx def CP 4 2 roll T moveto } def -/PutEnd { CP /TMatrix [ TMatrix setmatrix ] cvx def moveto } def -/Uput { /a ED add 2 div /h ED 2 div /w ED /s a sin def /c a cos def /b s -abs c abs 2 copy gt dup /q ED { pop } { exch pop } ifelse def /w1 c b -div w mul def /h1 s b div h mul def q { w1 abs w sub dup c mul abs } { -h1 abs h sub dup s mul abs } ifelse } def -/UUput { /z ED abs /y ED /x ED q { x s div c mul abs y gt } { x c div s -mul abs y gt } ifelse { x x mul y y mul sub z z mul add sqrt z add } { q -{ x s div } { x c div } ifelse abs } ifelse a PtoC h1 add exch w1 add -exch } def -/BeginOL { dup (all) eq exch TheOL eq or { IfVisible not { Visible -/IfVisible true def } if } { IfVisible { Invisible /IfVisible false def -} if } ifelse } def -/InitOL { /OLUnit [ 3000 3000 matrix defaultmatrix dtransform ] cvx def -/Visible { CP OLUnit idtransform T moveto } def /Invisible { CP OLUnit -neg exch neg exch idtransform T moveto } def /BOL { BeginOL } def -/IfVisible true def } def -end -% END pstricks.pro - -%%EndProcSet -%%BeginProcSet: pst-dots.pro 0 0 -%!PS-Adobe-2.0 -%%Title: Dot Font for PSTricks -%%Creator: Timothy Van Zandt -%%Creation Date: May 7, 1993 -%% Version 97 patch 1, 99/12/16 -%% Modified by Etienne Riga - Dec. 16, 1999 -%% to add /Diamond, /SolidDiamond and /BoldDiamond -10 dict dup begin - /FontType 3 def - /FontMatrix [ .001 0 0 .001 0 0 ] def - /FontBBox [ 0 0 0 0 ] def - /Encoding 256 array def - 0 1 255 { Encoding exch /.notdef put } for - Encoding - dup (b) 0 get /Bullet put - dup (c) 0 get /Circle put - dup (C) 0 get /BoldCircle put - dup (u) 0 get /SolidTriangle put - dup (t) 0 get /Triangle put - dup (T) 0 get /BoldTriangle put - dup (r) 0 get /SolidSquare put - dup (s) 0 get /Square put - dup (S) 0 get /BoldSquare put - dup (q) 0 get /SolidPentagon put - dup (p) 0 get /Pentagon put - dup (P) 0 get /BoldPentagon put -% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga - dup (l) 0 get /SolidDiamond put - dup (d) 0 get /Diamond put - (D) 0 get /BoldDiamond put -% DG/SR modification end - /Metrics 13 dict def - Metrics begin - /Bullet 1000 def - /Circle 1000 def - /BoldCircle 1000 def - /SolidTriangle 1344 def - /Triangle 1344 def - /BoldTriangle 1344 def - /SolidSquare 886 def - /Square 886 def - /BoldSquare 886 def - /SolidPentagon 1093.2 def - /Pentagon 1093.2 def - /BoldPentagon 1093.2 def -% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga - /SolidDiamond 1008 def - /Diamond 1008 def - /BoldDiamond 1008 def -% DG/SR modification end - /.notdef 0 def - end - /BBoxes 13 dict def - BBoxes begin - /Circle { -550 -550 550 550 } def - /BoldCircle /Circle load def - /Bullet /Circle load def - /Triangle { -571.5 -330 571.5 660 } def - /BoldTriangle /Triangle load def - /SolidTriangle /Triangle load def - /Square { -450 -450 450 450 } def - /BoldSquare /Square load def - /SolidSquare /Square load def - /Pentagon { -546.6 -465 546.6 574.7 } def - /BoldPentagon /Pentagon load def - /SolidPentagon /Pentagon load def -% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga - /Diamond { -428.5 -742.5 428.5 742.5 } def - /BoldDiamond /Diamond load def - /SolidDiamond /Diamond load def -% DG/SR modification end - /.notdef { 0 0 0 0 } def - end - /CharProcs 20 dict def - CharProcs begin - /Adjust { - 2 copy dtransform floor .5 add exch floor .5 add exch idtransform - 3 -1 roll div 3 1 roll exch div exch scale - } def - /CirclePath { 0 0 500 0 360 arc closepath } def - /Bullet { 500 500 Adjust CirclePath fill } def - /Circle { 500 500 Adjust CirclePath .9 .9 scale CirclePath - eofill } def - /BoldCircle { 500 500 Adjust CirclePath .8 .8 scale CirclePath - eofill } def - /BoldCircle { CirclePath .8 .8 scale CirclePath eofill } def - /TrianglePath { 0 660 moveto -571.5 -330 lineto 571.5 -330 lineto - closepath } def - /SolidTriangle { TrianglePath fill } def - /Triangle { TrianglePath .85 .85 scale TrianglePath eofill } def - /BoldTriangle { TrianglePath .7 .7 scale TrianglePath eofill } def - /SquarePath { -450 450 moveto 450 450 lineto 450 -450 lineto - -450 -450 lineto closepath } def - /SolidSquare { SquarePath fill } def - /Square { SquarePath .89 .89 scale SquarePath eofill } def - /BoldSquare { SquarePath .78 .78 scale SquarePath eofill } def - /PentagonPath { - -337.8 -465 moveto - 337.8 -465 lineto - 546.6 177.6 lineto - 0 574.7 lineto - -546.6 177.6 lineto - closepath - } def - /SolidPentagon { PentagonPath fill } def - /Pentagon { PentagonPath .89 .89 scale PentagonPath eofill } def - /BoldPentagon { PentagonPath .78 .78 scale PentagonPath eofill } def -% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga - /DiamondPath { 0 742.5 moveto -428.5 0 lineto 0 -742.5 lineto - 428.5 0 lineto closepath } def - /SolidDiamond { DiamondPath fill } def - /Diamond { DiamondPath .85 .85 scale DiamondPath eofill } def - /BoldDiamond { DiamondPath .7 .7 scale DiamondPath eofill } def -% DG/SR modification end - /.notdef { } def - end - /BuildGlyph { - exch - begin - Metrics 1 index get exec 0 - BBoxes 3 index get exec - setcachedevice - CharProcs begin load exec end - end - } def - /BuildChar { - 1 index /Encoding get exch get - 1 index /BuildGlyph get exec - } bind def -end -/PSTricksDotFont exch definefont pop -%END pst-dots.pro - -%%EndProcSet -%%BeginProcSet: pst-node.pro 0 0 -%! -% PostScript prologue for pst-node.tex. -% Version 97 patch 1, 97/05/09. -% For distribution, see pstricks.tex. -% -/tx@NodeDict 400 dict def tx@NodeDict begin -tx@Dict begin /T /translate load def end -/NewNode { gsave /next ED dict dup 3 1 roll def exch { dup 3 1 roll def } -if begin tx@Dict begin STV CP T exec end /NodeMtrx CM def next end -grestore } def -/InitPnode { /Y ED /X ED /NodePos { NodeSep Cos mul NodeSep Sin mul } def -} def -/InitCnode { /r ED /Y ED /X ED /NodePos { NodeSep r add dup Cos mul exch -Sin mul } def } def -/GetRnodePos { Cos 0 gt { /dx r NodeSep add def } { /dx l NodeSep sub def -} ifelse Sin 0 gt { /dy u NodeSep add def } { /dy d NodeSep sub def } -ifelse dx Sin mul abs dy Cos mul abs gt { dy Cos mul Sin div dy } { dx -dup Sin mul Cos Div } ifelse } def -/InitRnode { /Y ED /X ED X sub /r ED /l X neg def Y add neg /d ED Y sub -/u ED /NodePos { GetRnodePos } def } def -/DiaNodePos { w h mul w Sin mul abs h Cos mul abs add Div NodeSep add dup -Cos mul exch Sin mul } def -/TriNodePos { Sin s lt { d NodeSep sub dup Cos mul Sin Div exch } { w h -mul w Sin mul h Cos abs mul add Div NodeSep add dup Cos mul exch Sin mul -} ifelse } def -/InitTriNode { sub 2 div exch 2 div exch 2 copy T 2 copy 4 index index /d -ED pop pop pop pop -90 mul rotate /NodeMtrx CM def /X 0 def /Y 0 def d -sub abs neg /d ED d add /h ED 2 div h mul h d sub Div /w ED /s d w Atan -sin def /NodePos { TriNodePos } def } def -/OvalNodePos { /ww w NodeSep add def /hh h NodeSep add def Sin ww mul Cos -hh mul Atan dup cos ww mul exch sin hh mul } def -/GetCenter { begin X Y NodeMtrx transform CM itransform end } def -/XYPos { dup sin exch cos Do /Cos ED /Sin ED /Dist ED Cos 0 gt { Dist -Dist Sin mul Cos div } { Cos 0 lt { Dist neg Dist Sin mul Cos div neg } -{ 0 Dist Sin mul } ifelse } ifelse Do } def -/GetEdge { dup 0 eq { pop begin 1 0 NodeMtrx dtransform CM idtransform -exch atan sub dup sin /Sin ED cos /Cos ED /NodeSep ED NodePos NodeMtrx -dtransform CM idtransform end } { 1 eq {{exch}} {{}} ifelse /Do ED pop -XYPos } ifelse } def -/AddOffset { 1 index 0 eq { pop pop } { 2 copy 5 2 roll cos mul add 4 1 -roll sin mul sub exch } ifelse } def -/GetEdgeA { NodeSepA AngleA NodeA NodeSepTypeA GetEdge OffsetA AngleA -AddOffset yA add /yA1 ED xA add /xA1 ED } def -/GetEdgeB { NodeSepB AngleB NodeB NodeSepTypeB GetEdge OffsetB AngleB -AddOffset yB add /yB1 ED xB add /xB1 ED } def -/GetArmA { ArmTypeA 0 eq { /xA2 ArmA AngleA cos mul xA1 add def /yA2 ArmA -AngleA sin mul yA1 add def } { ArmTypeA 1 eq {{exch}} {{}} ifelse /Do ED -ArmA AngleA XYPos OffsetA AngleA AddOffset yA add /yA2 ED xA add /xA2 ED -} ifelse } def -/GetArmB { ArmTypeB 0 eq { /xB2 ArmB AngleB cos mul xB1 add def /yB2 ArmB -AngleB sin mul yB1 add def } { ArmTypeB 1 eq {{exch}} {{}} ifelse /Do ED -ArmB AngleB XYPos OffsetB AngleB AddOffset yB add /yB2 ED xB add /xB2 ED -} ifelse } def -/InitNC { /b ED /a ED /NodeSepTypeB ED /NodeSepTypeA ED /NodeSepB ED -/NodeSepA ED /OffsetB ED /OffsetA ED tx@NodeDict a known tx@NodeDict b -known and dup { /NodeA a load def /NodeB b load def NodeA GetCenter /yA -ED /xA ED NodeB GetCenter /yB ED /xB ED } if } def -/LPutLine { 4 copy 3 -1 roll sub neg 3 1 roll sub Atan /NAngle ED 1 t sub -mul 3 1 roll 1 t sub mul 4 1 roll t mul add /Y ED t mul add /X ED } def -/LPutLines { mark LPutVar counttomark 2 div 1 sub /n ED t floor dup n gt -{ pop n 1 sub /t 1 def } { dup t sub neg /t ED } ifelse cvi 2 mul { pop -} repeat LPutLine cleartomark } def -/BezierMidpoint { /y3 ED /x3 ED /y2 ED /x2 ED /y1 ED /x1 ED /y0 ED /x0 ED -/t ED /cx x1 x0 sub 3 mul def /cy y1 y0 sub 3 mul def /bx x2 x1 sub 3 -mul cx sub def /by y2 y1 sub 3 mul cy sub def /ax x3 x0 sub cx sub bx -sub def /ay y3 y0 sub cy sub by sub def ax t 3 exp mul bx t t mul mul -add cx t mul add x0 add ay t 3 exp mul by t t mul mul add cy t mul add -y0 add 3 ay t t mul mul mul 2 by t mul mul add cy add 3 ax t t mul mul -mul 2 bx t mul mul add cx add atan /NAngle ED /Y ED /X ED } def -/HPosBegin { yB yA ge { /t 1 t sub def } if /Y yB yA sub t mul yA add def -} def -/HPosEnd { /X Y yyA sub yyB yyA sub Div xxB xxA sub mul xxA add def -/NAngle yyB yyA sub xxB xxA sub Atan def } def -/HPutLine { HPosBegin /yyA ED /xxA ED /yyB ED /xxB ED HPosEnd } def -/HPutLines { HPosBegin yB yA ge { /check { le } def } { /check { ge } def -} ifelse /xxA xA def /yyA yA def mark xB yB LPutVar { dup Y check { exit -} { /yyA ED /xxA ED } ifelse } loop /yyB ED /xxB ED cleartomark HPosEnd -} def -/VPosBegin { xB xA lt { /t 1 t sub def } if /X xB xA sub t mul xA add def -} def -/VPosEnd { /Y X xxA sub xxB xxA sub Div yyB yyA sub mul yyA add def -/NAngle yyB yyA sub xxB xxA sub Atan def } def -/VPutLine { VPosBegin /yyA ED /xxA ED /yyB ED /xxB ED VPosEnd } def -/VPutLines { VPosBegin xB xA ge { /check { le } def } { /check { ge } def -} ifelse /xxA xA def /yyA yA def mark xB yB LPutVar { 1 index X check { -exit } { /yyA ED /xxA ED } ifelse } loop /yyB ED /xxB ED cleartomark -VPosEnd } def -/HPutCurve { gsave newpath /SaveLPutVar /LPutVar load def LPutVar 8 -2 -roll moveto curveto flattenpath /LPutVar [ {} {} {} {} pathforall ] cvx -def grestore exec /LPutVar /SaveLPutVar load def } def -/NCCoor { /AngleA yB yA sub xB xA sub Atan def /AngleB AngleA 180 add def -GetEdgeA GetEdgeB /LPutVar [ xB1 yB1 xA1 yA1 ] cvx def /LPutPos { -LPutVar LPutLine } def /HPutPos { LPutVar HPutLine } def /VPutPos { -LPutVar VPutLine } def LPutVar } def -/NCLine { NCCoor tx@Dict begin ArrowA CP 4 2 roll ArrowB lineto pop pop -end } def -/NCLines { false NArray n 0 eq { NCLine } { 2 copy yA sub exch xA sub -Atan /AngleA ED n 2 mul dup index exch index yB sub exch xB sub Atan -/AngleB ED GetEdgeA GetEdgeB /LPutVar [ xB1 yB1 n 2 mul 4 add 4 roll xA1 -yA1 ] cvx def mark LPutVar tx@Dict begin false Line end /LPutPos { -LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def } -ifelse } def -/NCCurve { GetEdgeA GetEdgeB xA1 xB1 sub yA1 yB1 sub Pyth 2 div dup 3 -1 -roll mul /ArmA ED mul /ArmB ED /ArmTypeA 0 def /ArmTypeB 0 def GetArmA -GetArmB xA2 yA2 xA1 yA1 tx@Dict begin ArrowA end xB2 yB2 xB1 yB1 tx@Dict -begin ArrowB end curveto /LPutVar [ xA1 yA1 xA2 yA2 xB2 yB2 xB1 yB1 ] -cvx def /LPutPos { t LPutVar BezierMidpoint } def /HPutPos { { HPutLines -} HPutCurve } def /VPutPos { { VPutLines } HPutCurve } def } def -/NCAngles { GetEdgeA GetEdgeB GetArmA GetArmB /mtrx AngleA matrix rotate -def xA2 yA2 mtrx transform pop xB2 yB2 mtrx transform exch pop mtrx -itransform /y0 ED /x0 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2 x0 y0 xA2 -yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false Line end /LPutVar [ xB1 -yB1 xB2 yB2 x0 y0 xA2 yA2 xA1 yA1 ] cvx def /LPutPos { LPutLines } def -/HPutPos { HPutLines } def /VPutPos { VPutLines } def } def -/NCAngle { GetEdgeA GetEdgeB GetArmB /mtrx AngleA matrix rotate def xB2 -yB2 mtrx itransform pop xA1 yA1 mtrx itransform exch pop mtrx transform -/y0 ED /x0 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2 x0 y0 xA1 yA1 -tx@Dict begin false Line end /LPutVar [ xB1 yB1 xB2 yB2 x0 y0 xA1 yA1 ] -cvx def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos { -VPutLines } def } def -/NCBar { GetEdgeA GetEdgeB GetArmA GetArmB /mtrx AngleA matrix rotate def -xA2 yA2 mtrx itransform pop xB2 yB2 mtrx itransform pop sub dup 0 mtrx -transform 3 -1 roll 0 gt { /yB2 exch yB2 add def /xB2 exch xB2 add def } -{ /yA2 exch neg yA2 add def /xA2 exch neg xA2 add def } ifelse mark ArmB -0 ne { xB1 yB1 } if xB2 yB2 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict -begin false Line end /LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx -def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos { -VPutLines } def } def -/NCDiag { GetEdgeA GetEdgeB GetArmA GetArmB mark ArmB 0 ne { xB1 yB1 } if -xB2 yB2 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false Line end -/LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx def /LPutPos { -LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def } -def -/NCDiagg { GetEdgeA GetArmA yB yA2 sub xB xA2 sub Atan 180 add /AngleB ED -GetEdgeB mark xB1 yB1 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin -false Line end /LPutVar [ xB1 yB1 xA2 yA2 xA1 yA1 ] cvx def /LPutPos { -LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def } -def -/NCLoop { GetEdgeA GetEdgeB GetArmA GetArmB /mtrx AngleA matrix rotate -def xA2 yA2 mtrx transform loopsize add /yA3 ED /xA3 ED /xB3 xB2 yB2 -mtrx transform pop def xB3 yA3 mtrx itransform /yB3 ED /xB3 ED xA3 yA3 -mtrx itransform /yA3 ED /xA3 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2 -xB3 yB3 xA3 yA3 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false -Line end /LPutVar [ xB1 yB1 xB2 yB2 xB3 yB3 xA3 yA3 xA2 yA2 xA1 yA1 ] -cvx def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos { -VPutLines } def } def -% DG/SR modification begin - May 9, 1997 - Patch 1 -%/NCCircle { 0 0 NodesepA nodeA \tx@GetEdge pop xA sub 2 div dup 2 exp r -%r mul sub abs sqrt atan 2 mul /a ED r AngleA 90 add PtoC yA add exch xA add -%exch 2 copy /LPutVar [ 4 2 roll r AngleA ] cvx def /LPutPos { LPutVar t 360 -%mul add dup 5 1 roll 90 sub \tx@PtoC 3 -1 roll add /Y ED add /X ED /NAngle ED -/NCCircle { NodeSepA 0 NodeA 0 GetEdge pop 2 div dup 2 exp r -r mul sub abs sqrt atan 2 mul /a ED r AngleA 90 add PtoC yA add exch xA add -exch 2 copy /LPutVar [ 4 2 roll r AngleA ] cvx def /LPutPos { LPutVar t 360 -mul add dup 5 1 roll 90 sub PtoC 3 -1 roll add /Y ED add /X ED /NAngle ED -% DG/SR modification end -} def /HPutPos { LPutPos } def /VPutPos { LPutPos } def r AngleA 90 sub a add -AngleA 270 add a sub tx@Dict begin /angleB ED /angleA ED /r ED /c 57.2957 r -Div def /y ED /x ED } def -/NCBox { /d ED /h ED /AngleB yB yA sub xB xA sub Atan def /AngleA AngleB -180 add def GetEdgeA GetEdgeB /dx d AngleB sin mul def /dy d AngleB cos -mul neg def /hx h AngleB sin mul neg def /hy h AngleB cos mul def -/LPutVar [ xA1 hx add yA1 hy add xB1 hx add yB1 hy add xB1 dx add yB1 dy -add xA1 dx add yA1 dy add ] cvx def /LPutPos { LPutLines } def /HPutPos -{ xB yB xA yA LPutLine } def /VPutPos { HPutPos } def mark LPutVar -tx@Dict begin false Polygon end } def -/NCArcBox { /l ED neg /d ED /h ED /a ED /AngleA yB yA sub xB xA sub Atan -def /AngleB AngleA 180 add def /tA AngleA a sub 90 add def /tB tA a 2 -mul add def /r xB xA sub tA cos tB cos sub Div dup 0 eq { pop 1 } if def -/x0 xA r tA cos mul add def /y0 yA r tA sin mul add def /c 57.2958 r div -def /AngleA AngleA a sub 180 add def /AngleB AngleB a add 180 add def -GetEdgeA GetEdgeB /AngleA tA 180 add yA yA1 sub xA xA1 sub Pyth c mul -sub def /AngleB tB 180 add yB yB1 sub xB xB1 sub Pyth c mul add def l 0 -eq { x0 y0 r h add AngleA AngleB arc x0 y0 r d add AngleB AngleA arcn } -{ x0 y0 translate /tA AngleA l c mul add def /tB AngleB l c mul sub def -0 0 r h add tA tB arc r h add AngleB PtoC r d add AngleB PtoC 2 copy 6 2 -roll l arcto 4 { pop } repeat r d add tB PtoC l arcto 4 { pop } repeat 0 -0 r d add tB tA arcn r d add AngleA PtoC r h add AngleA PtoC 2 copy 6 2 -roll l arcto 4 { pop } repeat r h add tA PtoC l arcto 4 { pop } repeat } -ifelse closepath /LPutVar [ x0 y0 r AngleA AngleB h d ] cvx def /LPutPos -{ LPutVar /d ED /h ED /AngleB ED /AngleA ED /r ED /y0 ED /x0 ED t 1 le { -r h add AngleA 1 t sub mul AngleB t mul add dup 90 add /NAngle ED PtoC } -{ t 2 lt { /NAngle AngleB 180 add def r 2 t sub h mul t 1 sub d mul add -add AngleB PtoC } { t 3 lt { r d add AngleB 3 t sub mul AngleA 2 t sub -mul add dup 90 sub /NAngle ED PtoC } { /NAngle AngleA 180 add def r 4 t -sub d mul t 3 sub h mul add add AngleA PtoC } ifelse } ifelse } ifelse -y0 add /Y ED x0 add /X ED } def /HPutPos { LPutPos } def /VPutPos { -LPutPos } def } def -/Tfan { /AngleA yB yA sub xB xA sub Atan def GetEdgeA w xA1 xB sub yA1 yB -sub Pyth Pyth w Div CLW 2 div mul 2 div dup AngleA sin mul yA1 add /yA1 -ED AngleA cos mul xA1 add /xA1 ED /LPutVar [ xA1 yA1 m { xB w add yB xB -w sub yB } { xB yB w sub xB yB w add } ifelse xA1 yA1 ] cvx def /LPutPos -{ LPutLines } def /VPutPos@ { LPutVar flag { 8 4 roll pop pop pop pop } -{ pop pop pop pop 4 2 roll } ifelse } def /VPutPos { VPutPos@ VPutLine } -def /HPutPos { VPutPos@ HPutLine } def mark LPutVar tx@Dict begin -/ArrowA { moveto } def /ArrowB { } def false Line closepath end } def -/LPutCoor { NAngle tx@Dict begin /NAngle ED end gsave CM STV CP Y sub neg -exch X sub neg exch moveto setmatrix CP grestore } def -/LPut { tx@NodeDict /LPutPos known { LPutPos } { CP /Y ED /X ED /NAngle 0 -def } ifelse LPutCoor } def -/HPutAdjust { Sin Cos mul 0 eq { 0 } { d Cos mul Sin div flag not { neg } -if h Cos mul Sin div flag { neg } if 2 copy gt { pop } { exch pop } -ifelse } ifelse s add flag { r add neg } { l add } ifelse X add /X ED } -def -/VPutAdjust { Sin Cos mul 0 eq { 0 } { l Sin mul Cos div flag { neg } if -r Sin mul Cos div flag not { neg } if 2 copy gt { pop } { exch pop } -ifelse } ifelse s add flag { d add } { h add neg } ifelse Y add /Y ED } -def -end -% END pst-node.pro - -%%EndProcSet -%%BeginProcSet: pst-eucl.pro 0 0 -%! -% PostScript prologue for pst-eucl.tex. -% Version 2001, 2001/12/09 -% For distribution, see pstricks.tex. -% -/tx@EcldDict 400 dict def tx@EcldDict begin -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Pi -/Pi 3.14159265359 def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% e -/E 2.718281828459045 def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% x -> true (if |x| < 1E-10) -/ZeroEq { abs 1E-10 lt } bind def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% x1 y1 x2 y2 -> a b c (ax+by+c=0) -/EqDr { - 4 copy 3 -1 roll sub 7 1 roll exch sub 5 1 roll 4 -1 roll - mul 3 1 roll mul exch sub } bind def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% orthogonal projection of M1 onto (OM2) -%% x1 y1 x2 y2 -> x3 y3 -/Project { - 2 copy dup mul exch dup mul add 5 1 roll 2 copy 5 -1 roll mul exch - 5 -1 roll mul add 4 -1 roll div dup 4 -1 roll mul exch 3 -1 roll mul -} bind def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% a b c (ax2+bx+c=0) -> x1 y1 -/SolvTrin { - /c exch def /b exch def /a exch def - b dup mul a c mul 4 mul sub dup 0 lt - { pop 0 0 } %% no solutions - {sqrt dup b neg add a 2 mul div exch b add neg 2 a mul div } - ifelse } bind def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% x1 y1 x2 y2 -> Dist -/ABDist { 3 -1 roll sub dup mul 3 1 roll sub dup mul add sqrt } bind def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% x1 y1 x2 y2 -> x1-x2 y1-y2 -/ABVect { 3 -1 roll exch sub 3 1 roll sub exch } bind def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% x1 y1 x2 y2 x3 y3 x4 y4 -> x y -/InterLines { - EqDr /D1c exch def /D1b exch def /D1a exch def - EqDr /D2c exch def /D2b exch def /D2a exch def - D1a D2b mul D1b D2a mul sub dup ZeroEq - { pop pop pop 0 0 } - { - /Det exch def - D1b D2c mul D1c D2b mul sub Det div - D1a D2c mul D2a D1c mul sub Det div - } - ifelse } bind def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% a b c R -> x1 y1 x2 y2 -/InterLineCircle { - /CR exch def /Dc exch def /Db exch def /Da exch def - Db Da dup ZeroEq { pop Dc dup ZeroEq { pop 1 } if } if div abs - 0.0005 lt { InterLineCirclebnull } { InterLineCircleGal } - ifelse - %%dup 3 index lt { 4 2 roll } if - } def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% case where the line is parallel to (oy) -/InterLineCirclebnull { - Dc Da div neg dup dup mul CR dup mul exch sub dup - 0 lt - { pop pop 0 0 0 0 } { sqrt dup 3 1 roll exch dup 4 1 roll exch neg } - ifelse } def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% general case -/InterLineCircleGal { - Da dup mul Db dup mul add -2 Dc mul Da mul Dc dup mul CR dup mul Db dup - mul mul sub SolvTrin dup neg exch Da Db div mul Dc Db - div exch sub 3 -1 roll - dup neg exch Da Db div mul Dc Db div exch sub -} bind def -/Glbx 0 def /Glby 0 def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% R R' OO' -> x1 y1 x2 y2 -/InterCircles { - /OOP exch def /CRP exch def /CR exch def - OOP dup mul CRP dup mul sub CR dup mul add OOP div 2 div - dup dup mul CR dup mul exch sub dup - 0 lt { pop pop 0 0 0 0 } { sqrt 2 copy neg } ifelse -} bind def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% x y theta -> x' y' (rotation of theta) -/Rotate { - dup sin /sintheta exch def cos /costheta exch def /y exch def /x exch def - x costheta mul y sintheta mul sub - y costheta mul x sintheta mul add -} def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% N -> x y -/GetNode { - tx@NodeDict begin - tx@NodeDict 1 index known { load GetCenter } { pop 0 0 } ifelse - end -} bind def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% x -> ch(x) -/ch { dup Ex exch neg Ex add 2 div } bind def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% x -> sh(x) -/sh { dup Ex exch neg Ex sub 2 div } bind def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% x -> e^(x) -/Ex { E exch exp } bind def -end -% END ps-euclide.pro - -%%EndProcSet -%%BeginProcSet: texps.pro 0 0 -%! -TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 -index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll -exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0 -ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{ -pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get -div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type -/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end -definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup -sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll -mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[ -exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if} -forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def -end - -%%EndProcSet -%%BeginProcSet: special.pro 0 0 -%! -TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N -/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N -/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N -/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{ -/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho -X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B -/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{ -/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known -{userdict/md get type/dicttype eq{userdict begin md length 10 add md -maxlength ge{/md md dup length 20 add dict copy def}if end md begin -/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S -atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{ -itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll -transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll -curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf -pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack} -if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 --1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 -get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip -yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub -neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{ -noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop -90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get -neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr -1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr -2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 --1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S -TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{ -Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale -}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState -save N userdict maxlength dict begin/magscale true def normalscale -currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts -/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x -psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx -psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub -TR/showpage{}N/erasepage{}N/setpagedevice{pop}N/copypage{}N/p 3 def -@MacSetUp}N/doclip{psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll -newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto -closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N -/@beginspecial{SDict begin/SpecialSave save N gsave normalscale -currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N} -N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs -neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate -rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse -scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale llx neg -lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx -ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N -/setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{count ocount sub{ -pop}repeat countdictstack dcount sub{end}repeat grestore SpecialSave -restore end}N/@defspecial{SDict begin}N/@fedspecial{end}B/li{lineto}B -/rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1 -setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY -moveto}N/ellipse{/endangle X/startangle X/yrad X/xrad X/savematrix -matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc -savematrix setmatrix}N end - -%%EndProcSet -%%BeginFont: CMR10 -%!PS-AdobeFont-1.1: CMR10 1.00B -%%CreationDate: 1992 Feb 19 19:54:52 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.00B) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMR10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /CMR10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 49 /one put -readonly def -/FontBBox{-251 -250 1009 969}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 -016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 -9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F -D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 -469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 -2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4 -87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F -D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0 -92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C -295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75 -409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C -4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF -2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E -0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E -B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008 -24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B -43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF -D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575 -5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC -96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3 -7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3C8578EF9A20A0E06E -4F7ADDAF0E7D1E182D115BF1AD931977325AD391E72E2B13CC108E3726C11099 -E2000623188AAAC9F3E233EB253BDD8B0A4759A66A113E066238B0086AC1B634 -5ABFF90E4B5ED3FA69C22541981B2BFC9710AEF6B50A8BB53431C7B4D380D721 -639E005D6B4688EE16BFF48443E7C9E5FB5BC5883E271CB0342893C0BBC0A879 -B7220832FB50103F72F8B5D98CF223DB1D0EE09EE454D9496C392F12478835E1 -762DF62F2BCF601F3355828AB3963623C4B9BDBBC761B9DE9EDE67C74277FECB -B3AAEE9240011A2BC34C4879B3673E7EEB374A3FB8ED01FB5FB85AFBC1F7299A -8371255D51560E1946A50092C8E48F3BF180229FF21A1A79020E4BEB512EABF1 -02AA111461557961E3B891E4FC323C61D497CCCE9D2586EB93DE4D6FB682B960 -B36D5C4AB832F0F8D8CFBA86753A9A919B814D506A80B2A8399C9396D9C94C4B -74FD9890373C583561A49FBED4F520EFC18DBA2E1BFE377A7B11B3684EFA80F5 -E9122A94423BC3A5B27D8A4FC17EE6DD29 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMMI10 -%!PS-AdobeFont-1.1: CMMI10 1.100 -%%CreationDate: 1996 Jul 23 07:53:57 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.100) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMMI10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.04 def -/isFixedPitch false def -end readonly def -/FontName /CMMI10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -readonly def -/FontBBox{-32 -250 1048 750}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE -3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B -532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 -B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B -986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE -D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 -9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321 -990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E -6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB -DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721 -59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823 -D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF -8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808 -6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9 -1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE -03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909 -95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1 -74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2 -3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8 -47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19 -AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8 -42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8 -40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837 -B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53 -9560176671A33FC55340CD04C2DE46FD812FC2711A85D778F691ED261C6E4CC8 -83D1C2D972559E1FF9342B428DD3C5C2FB88B68D19E3784E9E517C0F8FCCD25C -CB0ADAD7857DDF51CAEE898B5DBC00B9A7FD8A4BEDB26AAACCDA563B112F3E26 -50C1F6B1900BD478E0CBBEFFF13CC3D9B16F254D9EB2733B2B49D439DE6A54A8 -68DB85E0A7F7F007E39A39F929F747B013920F848917433987A6B0F823923AC2 -B22D97AA5D4378DCECF5601F6CE78B5E6867D17DCD42AB76DD58883F03C5D8B0 -B6DC4CD14BE55FB8CE16F6A3583FCE7A6B5705406EDD911C656C73E0116FA869 -6DD716DF9EB842D2C1870BBEC58AE344B8034C6F7DB10B2C1C9B20B842085408 -B0F14CEB23E547AEAA968F0104C96B9D96C922A0EE3635C998B75C64C45A6402 -3BAD86772B7DDDBB4A0D09037815FF3B905500DE32EFB97F7DEBF660DAF37A33 -4DB103A1124DA59B0267EFFDC6C9973747F95038DB72CE0AF4FFCCECEB20C71F -2E03B82AC8034BB4DEC02FF448024362736B322A57D0626036FC820288AD9D54 -17E1B493512EDD3BAD2283D06F36365E02DFACA42B38C9BC783BB60777B1E4FC -DE4E5AAB49E0370CCAF61C1378FE6D544F83BE6B054FE95E8BFA83FF9729C5E8 -CA3164CBF45BD6C2B9B28FA366336E5A1E284DE3EA7E18DF14C30F5E4C993AA6 -510174F9FC7943AF5B14997493AA46A7E32E85B05F50AACB93577255EC2D7D98 -644E90F6871A48DFFE92F79056DE4C257A4E0B33B61026F083AA239E1C0E7376 -8C53AC6EECCB11A752AA8451D714983A0810A64626440EFF140C7560809B063B -8EDE3AB67214110CFD47EBE42950518F56D5B36F69CEFC2C37043D6D9822DCE1 -029423A1C873D5E04A9267A294AB230C0834076C5F9DEA602FF900CDE323F633 -5B8BD1D7F76D8D2CF9586CD073B9E11C04777860A7963629FAED4134B79593E0 -A0F71A5FD98BEDA1B539D496ECED78EE53FD80C713103C569CE94B76768D2A58 -C440C4843D8CDBFBD342C9976118E8EC642A0C9CFF52B558049FB5964580E6B0 -D9D8C34DD4429D5F40BC39F348F4AC56D8DBCBFBDCDD5345D5D747EAB8CE7D62 -001753FBAAA1EBFDA7B44DD4F37C564FB9D17A26EE442DAA42A5C2261CBDD33F -0AC8064908E25A6D1E554DD1BD99D8243FE4E866EDBF81A782ABF55CBCBF3632 -2167CC4831F8AF19DDBF65F836C4DCC19779F145C14A1E55BAEBA0801F407595 -711AC192605805925F59ABC27FF0644EF979269096A62A01F35ECC1EF977FE68 -7701549F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -TeXDict begin 39139632 55387786 1000 600 600 (triangle.dvi) -@start /Fa 206[42 49[{}1 83.022 /CMR10 rf /Fb 187[69 -59 63 62 65[{}4 83.022 /CMMI10 rf end -%%EndProlog -%%BeginSetup -%%Feature: *Resolution 600dpi -TeXDict begin -%%PaperSize: A4 - end -%%EndSetup -%%Page: 1 1 -TeXDict begin 1 0 bop 994 794 a - tx@Dict begin tx@NodeDict begin {-35.56592 -35.56592 } false /N@A -10 {InitPnode } NewNode end end - 994 794 a @beginspecial -@setspecial - tx@Dict begin STP newpath 0.8 SLW 0. setgray /DS 2.0 2. CLW mul add -2 div def /PSTricksDotFont 0. [1.0 0.0 0.0 1.0 0.0 0.0] FontDot /Dot -{ moveto gsave 1. 1. scale (b) show grestore } bind def tx@NodeDict -begin tx@NodeDict /N@A known { /N@A load GetCenter } { 0 0 } ifelse -end Dot end - -@endspecial 994 794 a - tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@A known { 10.00002 -45. /N@A load 0 GetEdge 0.0 45. AddOffset /N@A load GetCenter 3 -1 -roll add 3 1 roll add exch } { CP } ifelse end } PutCoor PutBegin -end - 994 794 a 994 794 -a - tx@Dict begin mark RAngle /a ED cleartomark a neg RotBegin end - 994 794 a 963 823 a Fb(A)994 794 y - tx@Dict begin RotEnd end - 994 794 a 994 794 -a - tx@Dict begin PutEnd end - 994 794 a 994 794 a - tx@Dict begin tx@NodeDict begin {-35.56592 35.56592 } false /N@B 10 -{InitPnode } NewNode end end - 994 794 a @beginspecial @setspecial - tx@Dict begin STP newpath 0.8 SLW 0. setgray /DS 2.0 2. CLW mul add -2 div def /PSTricksDotFont 0. [1.0 0.0 0.0 1.0 0.0 0.0] FontDot /Dot -{ moveto gsave 1. 1. scale (b) show grestore } bind def tx@NodeDict -begin tx@NodeDict /N@B known { /N@B load GetCenter } { 0 0 } ifelse -end Dot end - - -@endspecial 994 794 a - tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@B known { 10.00002 -45. /N@B load 0 GetEdge 0.0 45. AddOffset /N@B load GetCenter 3 -1 -roll add 3 1 roll add exch } { CP } ifelse end } PutCoor PutBegin -end - 994 794 a 994 794 a - tx@Dict begin mark RAngle /a ED cleartomark a neg RotBegin end - 994 794 a -960 823 a Fb(B)994 794 y - tx@Dict begin RotEnd end - 994 794 a 994 794 a - tx@Dict begin PutEnd end - 994 794 -a 994 794 a - tx@Dict begin tx@NodeDict begin {35.56592 35.56592 } false /N@C 10 -{InitPnode } NewNode end end - 994 794 a @beginspecial @setspecial - tx@Dict begin STP newpath 0.8 SLW 0. setgray /DS 2.0 2. CLW mul add -2 div def /PSTricksDotFont 0. [1.0 0.0 0.0 1.0 0.0 0.0] FontDot /Dot -{ moveto gsave 1. 1. scale (b) show grestore } bind def tx@NodeDict -begin tx@NodeDict /N@C known { /N@C load GetCenter } { 0 0 } ifelse -end Dot end - -@endspecial -994 794 a - tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@C known { 10.00002 -45. /N@C load 0 GetEdge 0.0 45. AddOffset /N@C load GetCenter 3 -1 -roll add 3 1 roll add exch } { CP } ifelse end } PutCoor PutBegin -end - 994 794 a 994 794 a - tx@Dict begin mark RAngle /a ED cleartomark a neg RotBegin end - 994 794 a 961 823 a Fb(C)994 -794 y - tx@Dict begin RotEnd end - 994 794 a 994 794 a - tx@Dict begin PutEnd end - 994 794 a 994 794 a - tx@Dict begin tx@NodeDict begin {35.56592 -35.56592 } false /N@D 10 -{InitPnode } NewNode end end - 994 794 -a @beginspecial @setspecial - tx@Dict begin STP newpath 0.8 SLW 0. setgray /DS 2.0 2. CLW mul add -2 div def /PSTricksDotFont 0. [1.0 0.0 0.0 1.0 0.0 0.0] FontDot /Dot -{ moveto gsave 1. 1. scale (b) show grestore } bind def tx@NodeDict -begin tx@NodeDict /N@D known { /N@D load GetCenter } { 0 0 } ifelse -end Dot end - -@endspecial 994 794 a - tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@D known { 10.00002 -45. /N@D load 0 GetEdge 0.0 45. AddOffset /N@D load GetCenter 3 -1 -roll add 3 1 roll add exch } { CP } ifelse end } PutCoor PutBegin -end - 994 -794 a 994 794 a - tx@Dict begin mark RAngle /a ED cleartomark a neg RotBegin end - 994 794 a 958 823 a Fb(D)994 794 y - tx@Dict begin RotEnd end - 994 -794 a 994 794 a - tx@Dict begin PutEnd end - 994 794 a 994 794 a - tx@Dict begin gsave STV newpath 0.8 SLW 0. setgray /ArrowA { moveto -} def /ArrowB { } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 -0.0 0 0 /N@A /N@B InitNC { NCLine } if end gsave 0.8 SLW 0. setgray -0 setlinecap stroke grestore grestore end - 994 794 a 994 794 -a - tx@Dict begin gsave STV newpath 0.8 SLW 0. setgray /ArrowA { moveto -} def /ArrowB { } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 -0.0 0 0 /N@B /N@C InitNC { NCLine } if end gsave 0.8 SLW 0. setgray -0 setlinecap stroke grestore grestore end - 994 794 a 994 794 a - tx@Dict begin gsave STV newpath 0.8 SLW 0. setgray /ArrowA { moveto -} def /ArrowB { } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 -0.0 0 0 /N@C /N@D InitNC { NCLine } if end gsave 0.8 SLW 0. setgray -0 setlinecap stroke grestore grestore end - 994 794 a 994 794 a - tx@Dict begin gsave STV newpath 0.8 SLW 0. setgray /ArrowA { moveto -} def /ArrowB { } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 -0.0 0 0 /N@D /N@A InitNC { NCLine } if end gsave 0.8 SLW 0. setgray -0 setlinecap stroke grestore grestore end - 994 794 a 994 -794 a - tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@B known { /N@B load -GetCenter } { 0 0 } ifelse end } PutCoor PutBegin end - 994 794 a @beginspecial @setspecial - tx@Dict begin STP newpath 0.8 SLW 0. setgray [ tx@EcldDict begin -/N@A GetNode exch Atan end .4 exch PtoC 28.45274 mul exch 28.45274 -mul exch tx@EcldDict begin /N@C GetNode exch Atan /N@A GetNode exch -Atan end 2 copy sub abs 91 gt { 2 copy lt { exch 360 add exch } { 360 -add } ifelse } if add 2 div 2 sqrt .4 mul exch PtoC 28.45274 mul exch -28.45274 mul exch tx@EcldDict begin /N@C GetNode exch Atan end .4 exch -PtoC 28.45274 mul exch 28.45274 mul exch 0.0 0.0 /Lineto /lineto load -def false Polygon gsave 0.8 SLW 0. setgray 0 setlinecap stroke grestore -end - -@endspecial -994 794 a - tx@Dict begin PutEnd end - 994 794 a 994 794 a - tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@C known { /N@C load -GetCenter } { 0 0 } ifelse end } PutCoor PutBegin end - 994 794 a @beginspecial -@setspecial - tx@Dict begin STP newpath 0.8 SLW 0. setgray [ tx@EcldDict begin -/N@B GetNode exch Atan end 1 exch PtoC 28.45274 mul exch 28.45274 mul -exch tx@EcldDict begin /N@D GetNode exch Atan /N@B GetNode exch Atan -end 2 copy sub abs 91 gt { 2 copy lt { exch 360 add exch } { 360 add -} ifelse } if add 2 div 2 sqrt 1 mul exch PtoC 28.45274 mul exch 28.45274 -mul exch tx@EcldDict begin /N@D GetNode exch Atan end 1 exch PtoC 28.45274 -mul exch 28.45274 mul exch 0.0 0.0 /Lineto /lineto load def false -Polygon gsave 0.8 SLW 0. setgray 0 setlinecap stroke grestore end - -@endspecial 994 794 a - tx@Dict begin PutEnd end - 994 794 a 994 794 -a - tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@D known { /N@D load -GetCenter } { 0 0 } ifelse end } PutCoor PutBegin end - 994 794 a 980 794 a - tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@D known { /N@D load -GetCenter } { 0 0 } ifelse end } PutCoor PutBegin end - 980 794 a @beginspecial @setspecial - tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def -/ArrowB { } def 0.0 0.0 /y ED /x ED /r 11.38092 def /c 57.2957 r Div -def /angleA tx@NodeDict begin tx@NodeDict /N@C known { /N@C load GetCenter -} { 0 0 } ifelse end exch Atan 0.0 c mul 2 div add def /angleB tx@NodeDict -begin tx@NodeDict /N@A known { /N@A load GetCenter } { 0 0 } ifelse -end exch Atan 0.0 c mul 2 div sub def x y r angleA angleB arc gsave -0.8 SLW 0. setgray 0 setlinecap stroke grestore end - - -@endspecial 980 794 a - tx@Dict begin { tx@EcldDict begin /N@A GetNode exch Atan /N@C GetNode -exch Atan end 2 copy lt { exch 360 sub exch } if add 2 div 0 add .4 -.5 mul exch PtoC 28.45274 mul exch 28.45274 mul exch } PutCoor PutBegin - end - 980 794 a 980 794 a - tx@Dict begin mark RAngle /a ED cleartomark a neg RotBegin end - 980 794 a -980 794 a - tx@Dict begin CP CP translate 0.4 0.4 scale NET end - 980 794 a @beginspecial @setspecial - tx@Dict begin STP newpath 0.8 SLW 0. setgray 0.0 0.0 2.27626 SD -end - -@endspecial -980 794 a - tx@Dict begin CP CP translate 1 0.4 div 1 0.4 div scale NET end - 980 794 a 980 794 a - tx@Dict begin RotEnd end - 980 794 a 980 794 a - tx@Dict begin PutEnd end - 980 -794 a 980 794 a - tx@Dict begin PutEnd end - 980 794 a 994 794 a - tx@Dict begin PutEnd end - 994 794 a 994 794 -a - tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@A known { /N@A load -GetCenter } { 0 0 } ifelse end } PutCoor PutBegin end - 994 794 a 980 794 a - tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@A known { /N@A load -GetCenter } { 0 0 } ifelse end } PutCoor PutBegin end - 980 794 a @beginspecial @setspecial - tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def -/ArrowB { } def 0.0 0.0 /y ED /x ED /r 11.38092 def /c 57.2957 r Div -def /angleA tx@NodeDict begin tx@NodeDict /N@D known { /N@D load GetCenter -} { 0 0 } ifelse end exch Atan 0.0 c mul 2 div add def /angleB tx@NodeDict -begin tx@NodeDict /N@B known { /N@B load GetCenter } { 0 0 } ifelse -end exch Atan 0.0 c mul 2 div sub def x y r angleA angleB arc gsave -0.8 SLW 0. setgray 0 setlinecap stroke grestore end - - -@endspecial 980 794 a - tx@Dict begin { tx@EcldDict begin /N@B GetNode exch Atan /N@D GetNode -exch Atan end 2 copy lt { exch 360 sub exch } if add 2 div 0 add .4 -.5 mul exch PtoC 28.45274 mul exch 28.45274 mul exch } PutCoor PutBegin - end - 980 794 a 980 794 a - tx@Dict begin mark RAngle /a ED cleartomark a neg RotBegin end - 980 794 a -980 794 a - tx@Dict begin CP CP translate 0.4 0.4 scale NET end - 980 794 a @beginspecial @setspecial - tx@Dict begin STP newpath 0.8 SLW 0. setgray 0.0 0.0 2.27626 SD -end - -@endspecial -980 794 a - tx@Dict begin CP CP translate 1 0.4 div 1 0.4 div scale NET end - 980 794 a 980 794 a - tx@Dict begin RotEnd end - 980 794 a 980 794 a - tx@Dict begin PutEnd end - 980 -794 a 980 794 a - tx@Dict begin PutEnd end - 980 794 a 994 794 a - tx@Dict begin PutEnd end - 994 794 a 1926 5255 -a Fa(1)p eop end -%%Trailer - -userdict /end-hook known{end-hook}if -%%EOF diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/triangle.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/triangle.tex deleted file mode 100644 index 9c1f3b96111..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/triangle.tex +++ /dev/null @@ -1,4 +0,0 @@ -%%%% -*-mode: latex; TeX-master: "euclide.tex" -*- -\begin{pspicture}(-2,-2)(2,2)\psgrid - \input{Exemples/triangle_in} -\end{pspicture} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/triangle_in.tex b/Master/texmf-dist/doc/generic/pst-eucl/Examples/triangle_in.tex deleted file mode 100644 index 8ee76189615..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/triangle_in.tex +++ /dev/null @@ -1,3 +0,0 @@ -\pstTriangle[PointSymbol=square, PointSymbolC=o, - linecolor=blue, linewidth=1.5\pslinewidth] - (1.5,-1){A}(0,1){B}(-1,-.5){C} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/euclide-english.tex b/Master/texmf-dist/doc/generic/pst-eucl/euclide-english.tex deleted file mode 100644 index 6956dacb2cf..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/euclide-english.tex +++ /dev/null @@ -1,1177 +0,0 @@ -\documentclass[12pt]{report} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\usepackage{euclide} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\title{The \texttt{pst-euclide} Package} -\author{\Version\\\\Dominique Rodriguez\thanks{domino.rodriguez@laposte.net}} -\date{\Date} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{document} -\maketitle -\begin{abstract} - The \texttt{pst-eucl} package allow the drawing of Euclidean - geometric figures using \LaTeX\ macros for specifying mathematical - constraints. It is thus possible to build point using common - transformations or intersections. The use of coordinates is limited - to points which controlled the figure. - - \vfill - - \begin{center}\bfseries - Acknowledgements - \end{center} - - I would like to thanks the following persons for the help they gave - me for development of this package: - - \begin{itemize} - \item Denis Girou pour ses critiques pertinentes et ses - encouragement lors de la découverte de l'embryon initial et pour - sa relecture du présent manuel ; - \item Michael Vulis for his fast testing of the documentation using - V\TeX\ which leads to the correction of a bug in the \PostScript\ code; - \item Manuel Luque and Olivier Reboux for their remarks and their examples. - \item Alain Delplanque for its modification propositions on automatic - placing of points name and the ability of giving a list of points in - \com{pstGeonode}. - \end{itemize} -\end{abstract} -%%%%%%%%%%%%%%%%%%%% -\renewcommand{\abstractname}{WARNING} -\begin{abstract} - This is the first release put on \texttt{CTAN} archives. - - \vfill - - \begin{center}\bfseries - LICENSE - \end{center} - - This program and its documentation can be redistributed and/or modified under the - terms of the ``\LaTeX{} Project Public License'' Distributed from \texttt{CTAN} - archives in directory \texttt{macros/latex/base/lppl.txt}. However, you may send me - an Email with a small commentary. Then you should consider making a - donation\footnote{especially if you use a purchased operating system!. Furthermore, - do not forget that \LaTeX{} is freely usable and that many users buy several - hundreds of euros (dollars, pounds) softwares of lower quality}: - -\begin{enumerate} -\item directly to the \LaTeX3 team; -\item and/or to me for the support of this package\footnote{1~\MonEuro, £1 ou \$1 is - OK, but I accept more.}. -\end{enumerate} - - A donation of time depending of competences is possible : correction of the - documentation (especially this one), test of functionnalities, propositions of - extensions, \ldots -\end{abstract} -\twocoltoc{} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\chapter{User's manual} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\section{Special specifications} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{\PStricks\ Options} - -The package activates the \com{SpecialCoor} mode. This mode extend the -coordinates specification. Furthermore the plotting type is set to -\texttt{dimen=middle}, which indicates that the position of the -drawing is done according to the middle of the line. Please look at -the user manual for more information about these setting. - -At last, the working axes are supposed to be (ortho)normed. - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Conventions} - -For this manual, I used the geometric French conventions for naming -the points: - -\begin{itemize} -\item $O$ is a centre (circle, axes, symmetry, homothety, rotation); -\item $I$ defined the unity of the abscissa axe, or a midpoint; -\item $J$ defined the unity of the ordinate axe; -\item $A$, $B$, $C$, $D$ are points ; -\item $M'$ is the image of $M$ by a transformation ; -\end{itemize} - -At last, although these are nodes in \PStricks, I treat them -intentionally as points. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\section{Basic Objects} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Points} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsubsection{default axes} - -\defcom[Creates a list of points using the common axis. \protect\ParamList{\param{PointName}, - \param{PointNameSep}, \param{PosAngle}, \param{PointSymbol}, \param{PtNameMath}}] - {pstGeonode}{\OptArg{par}$(x_1,y_1)$\Arg{$A_1$}$(x_2,y_2)$\Arg{$A_2$}\ldots$(x_n,y_n)$\Arg{$A_n$}} - -This command defines one or more geometrical points associated with a node. Each -point has a node name \Argsans{$A_i$} which defines the default label put on the -picture. This label is managed by default in mathematical mode, the boolean parameter -\param{PtNameMath} \DefaultVal{true} can modify this behavior and let manage the -label in normal mode. It is placed at a distance of \cbstart\param{PointNameSep} -\DefaultVal{1em}\cbend{} of the center of the node with a angle of -\param{PosAngle}\DefaultVal{0}. It is possible to specify another label using the -parameter \param{PointName} \DefaultVal{default}, and an empty label can be specified -by selecting the value \texttt{none}, in that case the point will have no name on the -picture. - -The point symbol is given by the parameter \param{PointSymbol} \DefaultVal{*}. The -symbol is the same as used by the macro \com{pstdot}. This parameter can be set to -\texttt{none}, which means that the point will not be drawn on the picture. - -Here are the possible values for this parameter: - -\begin{multicols}{3} - \begin{itemize}\psset{dotscale=2} - \item \param{*}: \psdots(.5ex,.5ex) - \item \param{o}: \psdots[dotstyle=o](.5ex,.5ex) - \item \param{+}: \psdots[dotstyle=+](.5ex,.5ex) - \item \param{x}: \psdots[dotstyle=x](.5ex,.5ex) - \item \param{asterisk} : \psdots[dotstyle=asterisk](.5ex,.5ex) - \item \param{oplus}: \psdots[dotstyle=oplus](.5ex,.5ex) - \item \param{otimes}: \psdots[dotstyle=otimes](.5ex,.5ex) - \item \param{triangle}: \psdots[dotstyle=triangle](.5ex,.5ex) - \item \param{triangle*}: \psdots[dotstyle=triangle*](.5ex,.5ex) - \item \param{square}: \psdots[dotstyle=square](.5ex,.5ex) - \item \param{square*}: \psdots[dotstyle=square*](.5ex,.5ex) - \item \param{diamond}: \psdots[dotstyle=diamond](.5ex,.5ex) - \item \param{diamond*}: \psdots[dotstyle=diamond*](.5ex,.5ex) - \item \param{pentagon}: \psdots[dotstyle=pentagon](.5ex,.5ex) - \item \param{pentagon*}: \psdots[dotstyle=pentagon*](.5ex,.5ex) - \item \param{|}: \psdots[dotstyle=|](.5ex,.5ex) - \end{itemize} -\end{multicols} - -\cbstart Furthermore, these symbols can be controlled with some others \PStricks, -several of these are : - -\begin{itemize} -\item their scale with \param{dotscale}, the value of whom is either two numbers - defining the horizontal and vertical scale factor, or one single value being the - same for both, -\item their angle with parameter \param{dotangle}. -\end{itemize} - -Please consult the \PStricks documentation for further details.\cbend - -The parameters are specified explicitly in the \Argsans{par} part. The -parameters \param{PosAngle}, \param{PointSymbol}, \param{PointName} and -\param{PointNameSep} can be set to : - -\begin{itemize} -\item either a single value, the same for all points ; -\item or a list of values delimited by accolads \texttt{\{ ... \}} and - separated with comma \textit{without any blanks}, allowing to differenciate the - value for each point. -\end{itemize} - -In the later case, the list can have less values than point which means that the -last value is used for all the remaining points. - -\cbstart At least, the parameter \param{CurveType} \DefaultVal{none} can be used to -draw a line between the points: - -\begin{itemize} -\item opened \verb$polyline$ ; -\item closed \verb$polygon$ ; -\item open and curved \verb$curve$. -\end{itemize}\cbend - -% EXEMPLE GEONODE -\tabex{geonode} - -Obviously, the nodes appearing in the picture can be used as normal -\PStricks nodes. Thus, it is possible to reference a point from -\rnode{ici}{here}. -\nccurve[arrowscale=2]{->}{ici}{B_1} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsubsection{User defined axes} - - -\defcom[Creates a list of points in the landmark $(O;I;J)$. - \protect\ParamList{\param{PointName}, \param{PointNameSep}, \param{PosAngle}, - \param{PointSymbol}, \param{PtNameMath}}] - {pstOIJGeonode} - {\OptArg{par}$(x_1,y_1)$\Arg{$A_1$}\Arg{$O$}\Arg{$I$}\Arg{$J$}$(x_2,y_2)$\Arg{$A_2$}\ldots$(x_n,y_n)$\Arg{$A_n$}} - -This command allows the placement of points in any landmark(?) defined -by the three points $(O;I;J)$. - -%% EXAMPLE -\tabex{oij} - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Segment mark} - -A segment can be drawn using the \com{ncline} command. However, -for marking a segment there is the following command: - -\defcom[Marks segment \Segment{AB} in its middle with the mark given by - \protect\param{SegmentSymbol}. \protect\ParamList{\param{SegmentSymbol}}] - {pstMarkSegment}{\OptArg{par}\Arg{$A$}\Arg{$B$}} - -The symbol drawn on the segment is given by the parameter -\param{SegmentSymbol}. Its value can be any valid command which can be -used in math mode. Its default value is \texttt{pstslashh}, -which produced two slashes on the segment. The segment is drawn. - -Several commands are predefined for marking the segment: - -\begin{multicols}{3} - \psset{PointSymbol=none, PointName=none, unit=.8} - \newcommand{\Seg}[1]{% - \com{#1} : \begin{pspicture}[shift=.3](2,1) - \pstGeonode(0.3,.5){A}(1.7,.5){B}\pstSegmentMark[SegmentSymbol=#1]{A}{B} - \end{pspicture}}% - \begin{itemize} - \item \Seg{pstslash} ; - \item \Seg{pstslashh} ; - \item \Seg{pstslashhh} ; - \item \Seg{MarkHash} ; - \item \Seg{MarkHashh} ; - \item \Seg{MarkHashhh} ; - \item \Seg{MarkCros} ; - \item \Seg{MarkCross} ; - \end{itemize} -\end{multicols} - -The three commands of the family \texttt{MarkHash} draw a line whose inclination is -controled by the parameter \param{MarkAngle} \DefaultVal{45}. Their width and colour -depends of the width and color of the line when the drawing is done, ass shown is the -next example. - -%% EXAMPLE -\tabex{segmentmark} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Triangles} - -The more classical figure, it has its own macro for a quick definition: - -\defcom[Draws a triangle. \protect\ParamList{\param{PointName}, - \param{PointNameSep}, \param{PosAngle}, \param{PointSymbol}, \param{PointNameA}, - \param{PosAngleA}, \param{PointSymbolA}, \param{PointNameB}, - \param{PosAngleB}, \param{PointSymbolB}, \param{PointNameC}, - \param{PosAngleC}, \param{PointSymbolC}}] - {pstTriangle}{% - \OptArg{par} - $(x_A;y_A)$\Arg{$A$}$(x_B;y_B)$\Arg{$B$}$(x_C;y_C)$\Arg{$C$}} - -In order to accurately put the name of the points, there are three parameters -\param{PosAngleA}, \param{PosAngleB} and \param{PosAngleC}, which are associated -respectively to the nodes \Argsans{$A$}, \Argsans{$B$} et \Argsans{$C$}. Obviously -they have the same meaning as the parameter \param{PosAngle}. If one or more of such -parameters is omitted, the value of \param{PosAngle} is taken. If no angle -is specified, points name are placed on the bissector line. - -In the same way there are parameters for controlling the symbol used -for each points: \param{PointSymbolA}, \param{PointSymbolB} and -\param{PointSymbolC}. They are equivalent to the parameter -\param{PointSymbol}. The management of the default value followed the -same rule. - -\tabex{triangle} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Angles} - -Each angle is defined with three points. The vertex is the second -point. Their order is important because it is assumed that the angle is -specified in the direct order. The first command is the marking of a -right angle: - -\defcom[Marks the rigth angle \protect\Angle{ABC} given in direct - order. \protect\ParamList{\param{RightAngleType}, \param{RightAngleSize}, - \param{RightAngleSize}}] - {pstRightAngle}% - {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$C$}} - -\cbstart The symbol used is controlled by the parameter \param{RightAngleType} -\DefaultVal{default}. Its possible values are : - -\begin{itemize} -\item \verb$default$ : standard symbol ; -\item \verb$german$ : german symbol (given by U. Dirr) ; -\item \verb$suisseromand$ : swiss romand symbol (given P. Schnewlin). -\end{itemize}\cbend - -The only parameter controlling this command, excepting the ones which -controlled the line, is \param{RightAngleSize} which defines the size -of the symbol\DefaultVal{0.28 unit}. - -For other angles, there is the command: - -\defcom[Marks the angle \protect\Angle{ABC} given in direct order. - \protect\ParamList{\param{MarkAngleRadius}, \param{LabelAngleOffset}, - \param{Mark}}] - {pstMarkAngle}% - {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$C$}} - - -The \param{label} can be any valid \TeX\ box, it is put at \param{LabelSep} -\DefaultVal{1 unit} of the node in the direction of the bisector of the angle -modified by \param{LabelAngleOffset}\DefaultVal{0} and positioned using -\param{LabelRefPt} \DefaultVal{c}. Furthermore the arc used for marking has a radius -of \param{MarkAngleRadius} \DefaultVal{.4~unit}. At least, it is possible to place -an arrow using the parameter \param{arrows}.Finally, it is possible to mark -the angle by specifying a \TeX{} command as argument of parameter \param{Mark}. - -\tabex{angle} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Lines, half-lines and segments} - -The classical line! - -\defcom[Draws line $(AB)$.] - {pstLineAB}{\OptArg{par}\Arg{$A$}\Arg{$B$}} - -In order to control its length\footnote{which is the comble for a -line!}, the two parameters \param{nodesepA} et \param{nodesepB} -specify the abscissa of the extremity of the drawing part of the line. -A negative abscissa specify an outside point, while a positive -abscissa specify an internal point. If these parameters have to be -equal, \param{nodesep} can be used instead. The default value of these -parameters is equal to 0. - -\tabex{droite} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Circles} - -A circle can be defined either with its center and a point of its -circumference, or with two diameterly opposed points. There is two -commands : - -\renewcommand{\ComUnDescr}{Draws the circle of center $O$ crossing $A$. \protect\ParamList{\param{Radius}, - \param{Diameter}}.} -\renewcommand{\ComDeuxDescr}{Draws the circle of diameter $AB$. \protect\ParamList{\param{Radius}, - \param{Diameter}}.} -\defcomdeux{pstCircleOA}{\OptArg{par}\Arg{$O$}\Arg{$A$}}% - {pstCircleAB}{\OptArg{par}\Arg{$A$}\Arg{$B$}} - -For the first macro, it is possible to omit the second point and then -to specify a radius or a diameter using the parameters \param{Radius} -and \param{Diameter}. The values of these parameters must be specified -with one of the two following macros : - -\renewcommand{\ComUnDescr}{Specifies distance $AB$ for the parameters - \protect\param{Radius} and \protect\param{Diameter}. \protect\ParamList{\param{DistCoef}}.} -\renewcommand{\ComDeuxDescr}{Specifies a numerical value for the parameters - \protect\param{Radius} and \protect\param{Diameter}. \protect\ParamList{\param{DistCoef}}.} -\defcomdeux{pstDistAB}{\OptArg{par}\Arg{$A$}\Arg{$B$}}% - {pstDistVal}{\OptArg{par}\Arg{x}} - -The first specifies a distance between two points. The parameter -\param{DistCoef} can be used to specify a coefficient to reduce or -enlarge this distance. To be taken into account this last parameter -must be specified before the distance. The second macro can be used to -specify an explicit numeric value. - -We will see later how to draw the circle crossing three points. - -\vspace{1.1\baselineskip} -\begin{minipage}[m]{.45\linewidth} - With this package, it becomes possible to draw: - - \begin{itemize} - \item {\color{red} the circle of center $A$ crossing $B$;} - \item {\color{green} the circle of center $A$ whose radius is $AC$;} - \item {\color{blue} the circle of center $A$ whose radius is $BC$;} - \item {\color{Sepia} the circle of center $B$ whose radius is $AC$;} - \item {\color{Aquamarine} the circle of center $B$ of diameter $AC$;} - \item {\color{RoyalBlue} the circle whose diameter is $BC$.} - \end{itemize} -\end{minipage} -% -\input{Examples/cercle} - -\smallverbatiminput{Examples/cercle_in} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Circle arcs} - -\renewcommand{\ComUnDescr}{Draws the circle arc of center $O$ and radius $OA$, - delimited by the angle $\protect\Angle{AOB}$ in direct order.} -\renewcommand{\ComDeuxDescr}{Draws the circle arc of center $O$ and radius $OA$, - delimited by the angle $\protect\Angle{AOB}$ in indirect order.} -\defcomdeux{pstArcOAB}{\OptArg{par}\Arg{$O$}\Arg{$A$}\Arg{$B$}}% - {pstArcnOAB}{\OptArg{par}\Arg{$O$}\Arg{$A$}\Arg{$B$}} - -These two macros draw circle arcs, $O$ is the center, the radius -defined by $OA$, the beginning angle given by $A$ and the final angle -by $B$. Finally, the first macro draws the arc in the direct way, -whereas the second in the indirect way. It is not necessary that the -two points are at the same distance of $O$. - -\tabex{arc} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Curved abscissa} - -A point can be positioned on a circle using its curved abscissa. - -\defcom[Puts a point on a circle using an curves abscissa. - \protect\ParamList{\param{PointSymbol}, \param{PosAngle}, - \param{PointName}, \param{PointNameSep}, \param{PtNameMath}, \param{CurvAbsNeg}}] - {pstCurvAbsNode}{\OptArg{par}\Arg{$O$}\Arg{$A$}\Arg{$B$}\Arg{Abs}} - -The point \Argsans{$B$} is positioned on the circle of center -\Argsans{$O$} crossing \Argsans{$A$}, with the curved abscissa -\Argsans{Abs}. The origin is \Argsans{$A$} and the direction is -anti-clockwise by default. The parameter \param{CurvAbsNeg} -\DefaultVal{false} can change this behavior. - -If the parameter \param{PosAngle} is not specified, the point label is put -automatically in oirder to be alined with the circle center and the point. - -\tabex{abscur} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Généric curve} - -It is possible to generate a set of points using a loop, and to give -them a generic name defined by a radical and a number. The following -command can draw a interpolated curve crossing all such kind of -points. - -\defcom[Draws an interpolate curve using a points family whose name has a - naming convention using a prefix and a number. - \protect\ParamList{\param{GenCurvFirst}, \param{GenCurvInc}, - \param{GenCurvLast}}] - {pstGenericCurve}{\OptArg{par}\Arg{Radical}\Arg{$n_1$}\Arg{$n_2$}} - -The curve is drawn on the points whose name is defined using the -radical \Argsans{Radical} followed by a number from \Argsans{$n_1$} to -\Argsans{$n_2$}. In order to manage side effect, the parameters -\param{GenCurvFirst} et \param{GenCurvLast} can be used to specified -special first or last point. The parameter \param{GenCurvInc} can be -used to modify the increment from a point to the next one -\DefaultVal{1}. - -\tabex{gencur} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\section{Geometric Transformations} - -The geometric transformations are the ideal tools to construct geometric figures. All -the classical transformations are available with the following macros \cbstart which -share the same syntaxic scheme end two parameters. - -The common syntax put at the end two point lists whose second is optional or with a -cardinal at least equal. These two lists contain the antecedent points and their -respective images. In the case no image is given for some points the a default name -is build appending a \verb$'$ to the antecedent name. - -The first shared parameter is \param{CodeFig} which draws the specific -constructions lines. Its default value is \param{false}, and a -\param{true} value activates this optional drawing. -The drawing is done using the line style \param{CodeFigStyle} -\DefaultVal{dashed}, with the color \param{CodeFigColor} -\DefaultVal{cyan}. - -Their second shared parameter is \param{CurveType} which controls the drawing of a -line crossing all images, and thus allow a quick description of a transformed figure.\cbend - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Central symmetry} - -\defcom[Builds the symetric point $M'_i$ of $M_i$ in relation to point $O$. - \protect\ParamList{\param{PointSymbol}, \param{PosAngle}, - \param{PointName}, \param{PointNameSep}, \param{PtNameMath}, - \param{CodeFig}, \param{CodeFigColor}, \param{CodeFigStyle}}]{pstSymO}% - {\OptArg{par}\Arg{$O$}\Arg{$M_1, M_2, \cdots, M_n$}\OptArg{$M'_1, M'_2, \cdots, M'_p$}} - -Draw the symmetric point in relation to point $O$. The classical -parameter of point creation are usable here, and also for all the -following functions. - -\tabex{symcentrale} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Orthogonal (or axial) symmetry} - -\defcom[Builds the symetric point $M'_i$ of $M_i$ in relation to line $(AB)$. - \protect\ParamList{\param{PointSymbol}, \param{PosAngle}, - \param{PointName}, \param{PointNameSep}, \param{PtNameMath}, - \param{CodeFig}, \param{CodeFigColor}, \param{CodeFigStyle}}]{pstOrtSym}% - {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$M_1, M_2, \cdots, M_n$}\OptArg{$M'_1, M'_2, \cdots, M'_p$}} - -Draws the symmetric point in relation to line $(AB)$. - -\tabex{symorthogonale} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Rotation} - -\defcom[Builds the image $M'_i$ of $M_i$ using a rotation around $O$ of \protect\param{RotAngle} - degrees (direct). - \protect\ParamList{\param{PointSymbol}, \param{PosAngle}, - \param{PointName}, \param{PointNameSep}, \param{PtNameMath}, \param{RotAngle}}]{pstRotation}% - {\OptArg{par}\Arg{$O$}\Arg{$M_1, M_2, \cdots, M_n$}\OptArg{$M'_1, M'_2, \cdots, M'_p$}} - -Draw the image of $M_i$ by the rotation of center $O$ and angle given by -the parameter \param{RotAngle}. This later can be an angle specified -by three points. In such a case, the following function must be used: - -\defcom[Specifies the measure of \protect\Angle{AOB} (direct) for the parameter - \protect\param{RotAngle}. \protect\ParamList{\param{AngleCoef}}] - {pstAngleABC}{\Arg{$A$}\Arg{$B$}\Arg{$C$}} - -Never forget to use the rotation for drawing a square or an equilateral -triangle.\cbstart The parameter \param{CodeFig} puts a bow with an arrow between the -point and its image, and if \param{TransformLabel} \DefaultVal{none} -contain some text, it is put on the corresponding angle in mathematical mode. - -\tabex{rotation}\cbend - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Translation} - -\defcom[Builds the translated $M'_i$ of $M_i$ using the vector \protect\Vecteur{AB}. - \protect\ParamList{\param{PointSymbol}, \param{PosAngle}, - \param{PointName}, \param{PointNameSep}, \param{PtNameMath}, \param{DistCoef}}] - {pstTranslation}% - {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$M_1, M_2, \cdots, M_n$}\OptArg{$M'_1, M'_2, \cdots, M'_p$}} - -Draws the translated $M'_i$ of $M_i$ using the vector \Vecteur{AB}. Useful for drawing a -parallel line. - -\tabex{translation} - -The parameter \param{DistCoef} can be used as a multiplicand -coefficient to modify the translation vector.\cbstart The parameter \param{CodeFig} -draws the translation vector le vecteur de translation between the -point and its image, labeled in its middle defaultly with the vector name or by the -text specified with \param{TransformLabel} \DefaultVal{none}.\cbend - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Homothetie} - -\defcom[Builds the image $M'_i$ de $M_i$ using the homothetie of centre $O$ and coefficient - \protect\param{HomCoef}. - \protect\ParamList{\param{PointSymbol}, \param{PosAngle}, - \param{PointName}, \param{PointNameSep}, \param{PtNameMath}, \param{HomCoef}}] - {pstHomO}% - {\OptArg{par}\Arg{$O$}\Arg{$M_1, M_2, \cdots, M_n$}\OptArg{$M'_1, M'_2, \cdots, M'_p$}} - -Draws $M'_i$ the image of $M_i$ by the homotethy of center $O$ and -coefficient specified with the parameter \param{HomCoef}. - -\tabex{homothetie} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Orthogonal projection} - -\defcom[Build the projected point $M'_i$ of $M_i$ on line $(AB)$. - \protect\ParamList{\param{PointSymbol}, \param{PosAngle}, - \param{PointName}, \param{PointNameSep}, \param{PtNameMath}, - \param{CodeFig}, \param{CodeFigColor}, \param{CodeFigStyle}}] - {pstProjection}% - {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$M_1, M_2, \cdots, M_n$}\OptArg{$M'_1, M'_2, \cdots, M'_p$}} - -Projects orthogonally the point $M_i$ on the line $(AB)$. Useful for the altitude of a -triangle. The name is aligned with the point and the projected point as -shown in the exemple. - -\tabex{projection} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\section{Special object} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Midpoint} - -\defcom[Build the middle $I$ of \Segment{AB}. - \protect\ParamList{\param{PointSymbol}, \param{PosAngle}, - \param{PointName}, \param{PointNameSep}, \param{PtNameMath}, \param{SegmentSymbol}, - \param{CodeFig}, \param{CodeFigColor}, \param{CodeFigStyle}}] - {pstMiddleAB}% - {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$I$}} - -Draw the midpoint $I$ of segment $[AB]$. By default, the point name is -automatically put below the segment. - -\tabex{milieu} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Triangle center of gravity} - -\defcom[Builds the centre of gravity $G$ of triangle $ABC$. - \protect\ParamList{\param{PointName}, \param{PointNameSep}, \param{PosAngle}, - \param{PointSymbol}, \param{PtNameMath}}] - {pstCGravABC}% - {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$C$}\Arg{$G$}} - -Draw the $ABC$ triangle centre of gravity $G$. - -\tabex{grav} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Centre of the circumcircle of a triangle} - -\defcom[Buids the center $O$ of the circumcircle of triangle $ABC$. - \protect\ParamList{\param{PointName}, \param{PointNameSep}, \param{PosAngle}, - \param{PointSymbol}, \param{PtNameMath}, \param{DrawCirABC}, \param{CodeFig}, - \param{CodeFigColor}, \param{CodeFigStyle}, \param{SegmentSymbolA}, - \param{SegmentSymbolB}, \param{SegmentSymbolC}}] - {pstCircleABC}{\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$C$}\Arg{$O$}} - -Draws the circle crossing three points (the circum circle) and put its center $O$. -The effective drawing is controlled by the boolean parameter \param{DrawCirABC} -\DefaultVal{true}.\cbstart Moreover the intermediate constructs (mediator lines) can -be drawn by setting the boolean parameter \param{CodeFig}. In that case the middle -points are marked on the segemnts using three different marks given by the parameters -\param{SegmentSymbolA}, \param{SegmentSymbolB} et \param{SegmentSymbolC}.\cbend - -\tabex% - [@{}m{.35\linewidth}@{\hspace{.013\linewidth}}>{\small}m{.627\linewidth}@{}]% - {ccirc} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Perpendicular bisector of a segment} - -\defcom[Builds the perpendicular bisector of the segment \Segment{AB}, its middle $I$ - and a point $M$ of the bisector wich is the image of $B$ using rotation. - \protect\ParamList{\param{PointName}, \param{PointNameSep}, \param{PosAngle}, - \param{PointSymbol}, \param{PtNameMath}, \param{CodeFig}, - \param{CodeFigColor}, \param{CodeFigStyle}, \param{SegmentSymbol}}] - {pstMediatorAB}{\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$I$}\Arg{$M$}} - -The perpendicular bisector of a segment is a line perpendicular to -this segment in its midpoint. The segment is $[AB]$, the midpoint $I$, -and $M$ is a point belonging to the perpendicular bisector line. It is -build by a rotation of $B$ of 90 degrees around $I$. This mean -that the order of $A$ and $B$ is important, it controls the position -of $M$. The command creates the two points $M$ end $I$. The -construction is controlled by the following parameters: - -\begin{itemize} -\item \param{CodeFig}, \param{CodeFigColor} et \param{SegmentSymbol} - for marking the right angle ; -\item \param{PointSymbol} et \param{PointName} for controlling the - drawing of the two points, each of them can be specified - separately with the parameters \param{...A} et \param{...B} ; -\item parameters controlling the line drawing. -\end{itemize} - -\tabex% - [@{}m{.35\linewidth}@{\hspace{.013\linewidth}}>{\small}m{.627\linewidth}@{}]% - {mediator} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Bisectors of angles} - -\defcom[Builds the internal bisector of angle \protect\Angle{BAC} and one of its point - $M$, image of $B$ by rotation around $A$. - \protect\ParamList{\param{PointSymbol}, \param{PosAngle}, - \param{PointName}, \param{PointNameSep}, \param{PtNameMath}}] - {pstBissectBAC}{\OptArg{par}\Arg{$B$}\Arg{$A$}\Arg{$C$}\Arg{$N$}} - -\defcom[Builds the external bisector of angle \protect\Angle{BAC} and one of its point - $M$, image of $B$ by rotation around $A$. - \protect\ParamList{\param{PointSymbol}, \param{PosAngle}, - \param{PointName}, \param{PointNameSep}, \param{PtNameMath}}] - {pstOutBissectBAC}{\OptArg{par}\Arg{$B$}\Arg{$A$}\Arg{$C$}\Arg{$N$}} - -there are two bisectors for a given geometric angle: the inside one and -the outside one; this is why there is two commands. The angle is -specified by three points specified in the trigonometric direction -(anti-clockwise). The result of the commands is the specific line and -a point belonging to this line. This point is built by a rotation of -point $B$. - -\tabex% - [@{}m{.35\linewidth}@{\hspace{.013\linewidth}}>{\small}m{.627\linewidth}@{}]% - {bissec} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\section{Intersections} - -Points can be defined by intersections. Six intersection types are -managed: - -\begin{itemize} -\item line-line; -\item line-circle; -\item circle-circle; -\item function-function; -\item function-line; -\item function-circle. -\end{itemize} - -An intersection can not exist: case of parallel lines. In such a case, -the point(s) are positioned at the origin. In fact, the user has to -manage the existence of these points. - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Line-Line} - -\defcom[Puts a point at the intersection of the two lines $(AB)$ et $(CD)$. - \protect\ParamList{\param{PointSymbol}, \param{PosAngle}, - \param{PointName}, \param{PointNameSep}, \param{PtNameMath}}] - {pstInterLL}% - {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$C$}\Arg{$D$}\Arg{$M$}} - -Draw the intersection point between lines $(AB)$ and $(CD)$. - -\begin{description} -\item[basique] - - \tabex{interDD} - -\item[Horthocentre] - - \tabex% - [@{}m{.35\linewidth}@{\hspace{.013\linewidth}}>{\small}m{.627\linewidth}@{}] - {orthocentre} - -\end{description} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Circle--Line} - -\defcom[Puts the intersection point(s) between $(AB)$ and the circle of - centre $O$ crossing $C$. - \protect\ParamList{\param{PointSymbol}, \param{PosAngle}, - \param{PointName}, \param{PointNameSep}, \param{PtNameMath}, - \param{PointSymbolA}, \param{PosAngleA}, \param{PointNameA}, - \param{PointSymbolB}, \param{PosAngleB}, \param{PointNameB}, - \param{Radius}, \param{Diameter}}] - {pstInterLC}% - {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$O$}\Arg{$C$}% - \Arg{$M_1$}\Arg{$M_2$}} - -Draw the one or two intersection point(s) between the line $(AB)$ and -the circle of centre $O$ and with radius $OC$. - -The circle is specified with its center and either a point of its -circumference or with a radius specified with parameter \param{radius} -or its diameter specified with parameter \param{Diameter}. These two -parameters can be modify by coefficient \param{DistCoef}. - - -The position of the wo points is such that the vectors \Vecteur{AB} abd -\Vecteur{M_1M_2} are in the same direction. Thus, if the points -definig the line are switch, then the resulting points will be also -switched. If the intersection is void, then the points are positionned -at the center of the circle. - - -\tabex - [@{}m{.4\linewidth}@{\hspace{.013\linewidth}}>{\small}m{.5777\linewidth}@{}] - {interDC} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Circle--Circle} - -\defcom[Put the intersection point(s) between the circle of centre $O_1$ passant - par $B$ et le cercle de centre $O_2$ passant par $C$.] - {pstInterCC}% - {\OptArg{par}\Arg{$O_1$}\Arg{$B$}\Arg{$O_2$}\Arg{$C$}% - \Arg{$M_1$}\Arg{$M_2$}} - -This function is similar to the last one. The boolean parameters -\param{CodeFigA} et \param{CodeFigB} allow the drawing of the arcs -at the intersection. In order to get a coherence \param{CodeFig} allow -the drawing of both arcs. The boolean parameters \param{CodeFigAarc} and -\param{CodeFigBarc} specified the direction of these optional arcs: -trigonometric (by default) or clockwise. Here is a first example. - -\tabex{interCC} - -And a more complete one, which includes the special circle -specification using radius and diameter. For such specifications it -exists the parameters \param{RadiusA}, \param{RadiusB}, -\param{DiameterA} and \param{DiameterB}. - -\begin{center} - \rule[-.5cm]{0pt}{8cm} - \begin{pspicture}(-3,-4)(7,3)\psgrid - \input{Examples/interCC_bis_in} - \end{pspicture} -\end{center} - -\smallverbatiminput{Examples/interCC_bis_in} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Function--function} - -\defcom[Puts an intersection point between two function curves.] - {pstInterFF}{\OptArg{par}\Arg{$f$}\Arg{$g$}\Arg{$x_0$}\Arg{$M$}} - -This function put a point at the intersection between two curves -defined by a function. $x_0$ is an intersection approximated value of -the abscissa. It is obviously possible to ise this function several -time if more than one intersection is present. Each function is -describerd in \PostScript in the same way as the description used by -the \com{psplot} macro of \PStricks. A constant function can be -specified, and then seaching function root is possible. - -The Newton algorithm is used for the research, and the intersection -may not to be found. In such a case the point is positionned at the -origin. On the other hand, the research can be trapped (in a local -extremum near zero). - -\tabex{interFF} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Function--line} - -\defcom[Puts an intersection point between one function curve and the line $(AB)$.] - {pstInterFL}{\OptArg{par}\Arg{$f$}\Arg{$A$}\Arg{$B$}\Arg{$x_0$}\Arg{$M$}} - -Puts a point at the intersection between the function $f$ and the line -$(AB)$. - -\tabex{interFL} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Function--circle} - -\defcom[Puts an intersection point between one function curve and a circle.] - {pstInterFC}{\OptArg{par}\Arg{$f$}\Arg{$O$}\Arg{$A$}\Arg{$x_0$}\Arg{$M$}} - -Puts a point at the intersection between the function $f$ and the circle -of centre $O$ and radius $OA$. - -\tabex{interFC} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\chapter{Examples gallery} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \section{Basic geometry} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Drawing of the bissector} - \nopagebreak[4] - -\tabex{gal_biss} - - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \cbstart\subsection{Transformation de polygones et courbes} - -Here is an example of the use of \param{CurveType} with transformation. -\nopagebreak[4] - -\begin{center} -\input{Examples/curvetype} -\end{center}\nopagebreak[4] - -\smallverbatiminput{Examples/curvetype_in}\cbend - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Triangle lines} - -\begin{center} -\psset{unit=2cm} -\input{Examples/remarq} -\end{center}\nopagebreak[4] - -\smallverbatiminput{Examples/remarq_in} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Euler circle} - -\begin{center} -\psset{unit=2cm} -\input{Examples/euler} -\end{center}\nopagebreak[4] - -\smallverbatiminput{Examples/euler_in} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Orthocenter and hyperbola} - -The orthocenter of a triangle whose points are on the branches of the -hyperbola ${\mathscr H} : y=a/x$ belong to this hyperbola. -\nopagebreak[4] - -\begin{center} -\psset{unit=.5cm} -\input{Examples/orthoethyper} -\end{center}\nopagebreak[4] - -\smallverbatiminput{Examples/orthoethyper_in} - -\pagebreak[4] - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{17 sides regular polygon} - -Striking picture created by K. F. Gauss. -he also prooved that it is possible to build the regular polygons which -have $2^{2^p}+1$ sides, the following one has 257 sides! -\nopagebreak[4] - -\begin{center} -\psset{unit=1.5cm, CodeFig=true, RightAngleSize=.14, CodeFigColor=red, - CodeFigB=true, linestyle=dashed, dash=2mm 2mm} -\input{Examples/gauss} -\end{center} - -\pagebreak[4] - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Circles \& tangents} - -The drawing of the circle tangents which crosses a given point. -\nopagebreak[4] - -\begin{center} -\input{Examples/tg1c} -\end{center} - -The drawing of the common tangent of two circles. -\nopagebreak[4] - -\begin{center} -\input{Examples/tg2c} -\end{center} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Fermat's point} - -Drawing of Manuel Luque.\nopagebreak[4] - -\begin{center} -\input{Examples/ptfermat} -\end{center} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Escribed and inscribed circles of a triangle} - -%% cercles inscrit et exinscrits d'un triangle -\begin{center} -\psset{unit=1cm, dash=5mm 4mm}%, PointSymbolA=none, PointSymbolB=none} -\input{Examples/cinscex} -\end{center} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \section{Some locus points} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Parabola} - -\begin{minipage}[m]{.33\linewidth} -The parabola is the set of points which are at the same distance -between a point and a line. -\end{minipage} -\newcommand{\NbPt}{11} -\input{Examples/parabole}\nopagebreak[4] - -\smallverbatiminput{Examples/parabole_in} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Hyperbola} - -\begin{minipage}[b]{.55\linewidth} -The hyperbola is the set of points whose difference between their -distance of two points (the focus) is constant. -\begin{verbatim} -%% QQ RAPPELS : a=\Sommet, c=\PosFoyer, -%% b^2=c^2-a^2, e=c/a -%% pour une hyperbole -> e>1, donc c>a, -%% ici on choisi a=\sqrt{2}, c=2, e=\sqrt{2} -%% M est sur H <=> |MF-MF'|=2a -\end{verbatim} -\end{minipage} -%% QQ DEFINITIONS -\input{Examples/hyperbole}\nopagebreak[4] - -\smallverbatiminput{Examples/hyperbole_in} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Cycloid} - -The wheel rolls from $M$ to $A$. The circle points are on a -cycloid.\nopagebreak[4] - -\begin{center} -\input{Examples/cyclo} -\end{center}\nopagebreak[4] - -\smallverbatiminput{Examples/cyclo_in} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Hypocycloids (Astroid and Deltoid)} - -A wheel rolls inside a circle, and depending of the radius ratio, it -is an astroid, a deltoid and in the general case hypo-cycloids. -\nopagebreak[4] - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% ASTROIDE -\input{Examples/hypocyclo} -%%%%%%%%%%%%%%%%%%%% -\begin{center} -\input{Examples/astro}\input{Examples/delto} -\end{center} - -\smallverbatiminput{Examples/hypocyclo} -\smallverbatiminput{Examples/astro_in} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \section{Lines and circles envelope} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Conics} - -Let's consider a circle and a point $A$ not on the circle. The -set of all the mediator lines of segments defined by $A$ and the -circle points, create two conics depending of the position of $A$: - -\begin{itemize} -\item inside the circle: an hyperbola; -\item outside the circle: an ellipse. -\end{itemize} - -(figure of O. Reboux). - -\begin{center}\input{Examples/envellipse}\end{center} - -\smallverbatiminput{Examples/envellipse_in} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Cardioid} - -The cardioid is defined by the circles centered on a circle and -crossing a given point. - -%\begin{center}\input{Examples/envcardi}\end{center} - -\tabex% - [@{}m{.5\linewidth}@{\hspace{.013\linewidth}}>{\small}m{.627\linewidth}@{}]% - {envcardi} - -%\smallverbatiminput{Examples/envcardi_in} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \section{Homotethy and fractals} - -\tabex{fracthom} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \section{hyperbolic geometry: a triangle and its altitudes} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Tracé de géodésique en géométrie hyperbolique -%% Attention ne fonctionne que si les points ne sont pas alignés avec O -%% Ceci est un cas particulier, je ne crois pas que les hauteurs -%% soient concourantes pour tous les triangles hyperboliques. -\input{Examples/geohyper} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\appendix -\chapter{Glossaire des commandes}%%\markboth{GLOSSAIRE DES COMMANDES}{\thepage}% -%%\addcontentsline{toc}{chapter}{\protect\numberline{}Glossaire des commandes}% - -Here is the complete macros list defined by \texttt{pst-eucl}. Each is shown with a -short description and its parameters which control it. It is obvious that some over -\PStricks parameters can be used, especially the ones which control the drawing of -the line (width, style, color). - -\input{euclide_english.ind} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\chapter{The parameters of \texttt{pst-eucl}} - -\begin{longtable}{|l|l|p{10cm}|} - \hline - \multicolumn{1}{|c|}{\textbf{Paramètre}} & - \multicolumn{1}{c|}{\textbf{Défaut}} & - \multicolumn{1}{c|}{\textbf{Signification}} \\\hline\hline - \endfirsthead - \hline - \multicolumn{1}{|c|}{\textbf{Paramètre}} & - \multicolumn{1}{c|}{\textbf{Défaut}} & - \multicolumn{1}{c|}{\textbf{Signification}} \\\hline\hline - \endhead - \hline - \multicolumn{3}{|c|}{$\ldots$ à suivre $\ldots$}\\ - \hline - \endfoot - \hline - \endlastfoot - \param{PointSymbol}&\verb$default$&Symbol used for drawing a point.\\\hline - \param{PointSymbolA}&\verb$default$&idem for the first point of several.\\\hline - \param{PointSymbolB}&\verb$default$&for the second\ldots\\\hline - \param{PointSymbolC}&\verb$default$&for the third\ldots\\\hline - \param{PointName}&\verb$default$&Point's label.\\\hline - \param{PointNameA}&\verb$default$&idem for the first point of several.\\\hline - \param{PointNameB}&\verb$default$&for the second\ldots\\\hline - \param{PointNameC}&\verb$default$&for the third\ldots\\\hline - \param{PtNameMath}&\verb$true$&boolean parameter for (de)-activate the math style - for the point name..\\\hline - \param{SegmentSymbol}&\verb$default$&Symbol used for marking a segment\\\hline - \param{SegmentSymbolA}&\verb$default$&idem for the first segment of a macro which - marks several.\\\hline - \param{SegmentSymbolB}&\verb$default$&for the second\ldots\\\hline - \param{SegmentSymbolC}&\verb$default$&for the third\ldots\\\hline - \param{Mark}&\verb$default$&the mark symbol for an angle.\\\hline - \param{MarkAngle}&\verb$default$&angle for the precedent symbol.\\\hline - \param{PointNameSep}&\verb$1em$&Distance from the label and a point.\\\hline - \param{PosAngle}&\verb$undef$&Label position around the point.\\\hline - \param{PosAngleA}&\verb$undef$&idem for the first point.\\\hline - \param{PosAngleB}&\verb$undef$&for the second\ldots\\\hline - \param{PosAngleC}&\verb$undef$&for the third\ldots\\\hline - \param{RightAngleSize}&\verb$.4$&size for the right angle symbol\\\hline - \param{RightAngleType}&\verb$default$&Right angle type, possible value: - \verb$german$ et \verb$suisseromand$\\\hline - \param{MarkAngleRadius}&\verb$.4$&Radius of the angle mark.\\\hline - \param{LabelAngleOffset}&\verb$0$&Angular offset for the angle label.\\\hline - \param{LabelSep}&\verb$1$&Distance from the label and the angle top and its label.\\\hline - \param{LabelRefPt}&\verb$c$&Reference point \TeX\ used for the angle label.\\\hline - \param{HomCoef}&\verb$.5$&Homothetie angle.\\\hline - \param{RotAngle}&\verb$60$&Rotation angle.\\\hline - \param{DrawCirABC}&\verb$true$&Boolean parameter driving the drawing of the circumcircle.\\\hline - \param{CodeFig}&\verb$false$&Boolean parameter driving the coding of the construct.\\\hline - \param{CodeFigA}&\verb$false$&idem for the first\ldots\\\hline - \param{CodeFigB}&\verb$false$&idem for the second\ldots\\\hline - \param{CodeFigColor}&\verb$cyan$&Line color for the coding.\\\hline - \param{CodeFigStyle}&\verb$dashed$&Line style for the coding.\\\hline - \param{CodeFigAarc}&\verb$true$&Boolean parameter driving the drawing of the bows - around the first intersection.\\\hline - \param{CodeFigBarc}&\verb$true$&idem for the second\ldots\\\hline - \param{Radius}&\verb$none$&Circle radius.\\\hline - \param{RadiusA}&\verb$undef$&For the first circle.\\\hline - \param{RadiusB}&\verb$undef$&For the second circle.\\\hline - \param{Diameter}&\verb$none$&Circle diameter.\\\hline - \param{DiameterA}&\verb$undef$&For the first circle.\\\hline - \param{DiameterB}&\verb$undef$&For the second circle.\\\hline - \param{DistCoef}&\verb$none$&Coefficient for modifying a distance/vector.\\\hline - \param{AngleCoef}&\verb$none$&Coefficient for modifying an angle.\\\hline - \param{CurvAbsNeg}&\verb$false$&Boolean parameter driving the direction of curved abscissa.\\\hline - \param{GenCurvFirst}&\verb$none$&Name of the first point of a generic curve (side effect).\\\hline - \param{GenCurvLast}&\verb$none$&Name of the last point of a generic curve (side effect).\\\hline - \param{GenCurvInc}&\verb$none$&Increment value for a generic curve.\\\hline - \cbstart% - \param{CurveType}&\verb$none$&Drawing mode for a list of points.\\\hline - \param{TransformLabel}&\verb$none$&Label to be used for the rotation or the translation.\\\hline -\end{longtable} - -\cbend - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\cbstart\chapter{Compatibilité ascendantes de \texttt{pst-eucl}} - -Especially for this release, some macros have their syntax changed without changing -their name, this mean that upward compatibility is not maintained. However, in order -to help users it is possible to reactivate the old syntax by setting the option -\texttt{old} when using the package \verb$\usepackage[old]{pst-eucl}$. For this -release this concern the macros for geometric transformations. You must refer to the -latter manual for the syntax. - -\cbend -\end{document} diff --git a/Master/texmf-dist/doc/generic/pst-eucl/euclide.sty b/Master/texmf-dist/doc/generic/pst-eucl/euclide.sty deleted file mode 100644 index 0207bf2bdd0..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/euclide.sty +++ /dev/null @@ -1,138 +0,0 @@ -%% Package style for the pst-eucl documentation package -\DeclareOption{french}{\gdef\euclide@language{frenchb}}% -\def\fileversion{1.37} -\def\filedate{2011/05/05}% -%% 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. -\csname EuclideManualLoaded\endcsname -\let\EuclideManualLoaded\endinput -\def\@english{english}% -\def\@frenchb{frenchb}% -\def\euclide@language{english}% -\ProcessOptions -\message{`Euclide manual package v\fileversion, \filedate\space (Dominique RODRIGUEZ)}% -\message{ all declarations for the pst-eucl manual}% -\message{ BEWARE you are using the \euclide@language\ language setting}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\PassOptionsToPackage{greek}{babel}%%\PassOptionsToPackage{LGR}{fontenc} -\usepackage[T1]{fontenc} -\usepackage[\euclide@language]{babel} -\usepackage[latin1]{inputenc} -\usepackage[a4paper]{geometry} -\usepackage[dvipsnames]{pstricks} -\usepackage{pst-eucl} -\usepackage{pst-plot} -\usepackage{ifthen} -\usepackage{calc} -\usepackage{array} -\usepackage{moreverb} -\usepackage{multicol} -\usepackage{mathrsfs} -\usepackage{changebar} -\usepackage{xspace} -\usepackage{fancyhdr} -\usepackage{multind} -\usepackage{textcomp} -%\usepackage{yhmath} -\usepackage{longtable} -\expandafter\ifx\csname PDF\endcsname\relax\else -\usepackage{pslatex}%for generating a pdf-file with ps2pdf -\fi -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% QQ DEFINITIONS -\def\Vecteur#1{\ensuremath{\overrightarrow{#1\hspace{.3em}}}}% -\def\Angle#1{\ensuremath{\widehat{#1}}}% -\def\Segment#1{\ensuremath{[#1]}}% -\def\Arg#1{{\normalfont$\{$\@Arg{#1}$\}$}}% -\def\Argsans#1{\@Arg{#1}}% -\def\OptArg#1{{\normalfont[{\@Arg{#1}}]}}% -\def\@Arg#1% - {$\protect\langle${\itshape\mdseries\rmfamily#1}$\protect\rangle$}% -%% le backslash \ -\newcommand{\bs}{\symbol{'134}}% -\newcommand{\defcom}[3][\null]{% - \begin{trivlist}\item\fbox{\texttt{\upshape\bs#2}#3}\end{trivlist} - \glossary{#2}%%pour le numéro de page dans le glossaire des commandes - \glossary{#2!\protect\indexcom{#2}\protect#3}% pour le glossaire - \Glos{#2}{\protect\indexcom{#2}\protect#3}{\hspace{1.5em}#1}% -}% -\newcommand{\Glos}[3]{\glossary{#1!#2!#3}}% -\newcommand{\indexcom}[1]% - {\textmd{\texttt{\upshape\bs#1}}}% -% {\index{latex}{#1@{\texttt{\upshape\bs#1}}}\textmd{\texttt{\upshape\bs#1}}}% -\newcommand{\ComUnDescr}{\null} -\newcommand{\ComDeuxDescr}{\null} -\newcommand{\defcomdeux}[4]{% - \begin{center}% - \begin{minipage}[t]{.45\linewidth}% - \begin{trivlist}\item\fbox{\texttt{\upshape\bs#1}#2}\end{trivlist}% - \glossary{#3}%%pour le numéro de page dans le glossaire des commandes - \glossary{#1!\protect\indexcom{#1}\protect#2}% pour le glossaire - \Glos{#1}{\protect\indexcom{#1}\protect#2}{\hspace{1.5em}\expandafter\ComUnDescr}% - \end{minipage}% - \hfill% - \begin{minipage}[t]{.45\linewidth}% - \begin{trivlist}\item\fbox{\texttt{\upshape\bs#3}#4}\end{trivlist}% - \glossary{#3}%%pour le numéro de page dans le glossaire des commandes - \glossary{#3!\protect\indexcom{#3}\protect#4}% pour le glossaire - \Glos{#3}{\protect\indexcom{#3}\protect#4}{\hspace{1.5em}\expandafter\ComDeuxDescr}% - \end{minipage} - \end{center}}%end defcomdeux -\newcommand{\ParamList}[1]{\par - \small\hspace{1.5em}Param\ifx\euclide@language\@english eters\else ètres \fi: #1} -\newenvironment{tabexemple}[1]% - [@{}m{.3\linewidth}@{\hspace{.013\linewidth}}>{\small}m{.677\linewidth}@{}]% - {\vspace{1em}\noindent\small\begin{center}% - \noindent\begin{tabular}{#1}}% - {\mbox{}\vspace{-1.5em}\end{tabular}\end{center}}% -\newcommand{\tabex}[2]% - [@{}m{.3\linewidth}@{\hspace{.013\linewidth}}m{.677\linewidth}@{}]% -{% - \begin{tabexemple}[#1]% - \input{Exemples/#2}&\smallverbatiminput{Exemples/#2_in}% - \end{tabexemple}% -}% -\def\smallverbatiminput#1{\small\verbatiminput{#1}}% -\def\param#1{\texttt{#1}} -\def\com#1{\texttt{\bs #1}} -\def\DefaultVal#1% - {(\ifx\euclide@language\@english by default \fi\texttt{#1}\ifx\euclide@language\@frenchb\ par défaut\fi)\xspace} -\def\PStricks{\texttt{PSTricks}\xspace} -\def\PostScript{\textsf{PostScript}\xspace} -\def\Version{Version 1.37\xspace} -\def\Date{\ifx\euclide@language\@english may 5th \else 5 mai \fi 2011} -\newcommand{\MonEuro}{\textgreek{\euro}\xspace} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\geometry{bottom=2.5cm, left=1cm, headheight=15.5pt, verbose}%, verbose} -\psset{subgriddiv=0,griddots=5} -\setlength{\changebarsep}{10pt} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% entête et pied de page -\pagestyle{fancy} -\renewcommand{\headrulewidth}{0.4pt} -\renewcommand{\footrulewidth}{0.4pt} -%\lhead{\Version -- \Date} -%\chead{} -%\rhead{Extension \texttt{pst-eucl} -- D. \textsc{Rodriguez}} -%\cfoot{\psshadowbox{\thepage}} -\lfoot{\Version --\Date} -\rfoot{Extension \texttt{pst-eucl} -- D. \textsc{Rodriguez}} -%%%%%%%%%%%%%%%%%%%% -\newcounter{i} -%%%%%%%%%%%%%%%%%%%% -\def\twocoltoc{% - \chapter*{\contentsname - \@mkboth{% - \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}% - \begin{multicols}{2} - \@starttoc{toc}% - \end{multicols}} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% GLOSSAIRE -\makeglossary -\endinput \ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-eucl/euclide_english.ist b/Master/texmf-dist/doc/generic/pst-eucl/euclide_english.ist deleted file mode 100644 index 090c4fdfb28..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/euclide_english.ist +++ /dev/null @@ -1,10 +0,0 @@ -% makeindex style file created by LaTeX for document "euclide_english" on 2005-10-9 -keyword "\\glossaryentry" -preamble "\\begin{theglossary}" -postamble "\n\\end{theglossary}\n" -group_skip "\\gloskip " -item_0 "\n\\gloitem " -delim_0 "\n\\glodelim " -page_compositor "-" -delim_n "\\delimN " -delim_r "\\delimR " diff --git a/Master/texmf-dist/doc/generic/pst-eucl/euclide_macros.ist b/Master/texmf-dist/doc/generic/pst-eucl/euclide_macros.ist deleted file mode 100644 index d5fb92a41c7..00000000000 --- a/Master/texmf-dist/doc/generic/pst-eucl/euclide_macros.ist +++ /dev/null @@ -1,33 +0,0 @@ -% makeindex style file for the glossary -%% aide dans man makeindex - -keyword "\\glossaryentry" - -%% changement de l'environnement de l'index -%%preamble "\\begin{theglossary}\n" -%%postamble "\n\n\\end{theglossary}\n" - -preamble "%% GLOSSAIRE\n\n\\newcounter{Npage}\\setcounter{Npage}{0}" -postamble "\n\n%% FIN DU GLOSSAIRE\n\n" - -group_skip "\n\n" - -line_max 2048 - -%%delim_0 " %% delim 0--" -delim_0 " %% delim 0--\n \\setcounter{Npage}{" -%%delim_1 "\\nopagebreak[4]\\vspace{.5\\baselineskip}\n %% delim_1" -delim_1 "\\dotfill\\arabic{Npage}\n\\nopagebreak[4]\\vspace{.5\\baselineskip}\n\n \\hfill\\begin{minipage}{.8\\linewidth}%% delim_1--p" -%%delim_2 "\\end{minipage}\\hspace*{\\fill}\n\n\\hfill\\rule{.85\\linewidth}{.5pt}\\hspace*{\\fill}%% delim_2--p" -delim_2 "\\end{minipage}\\hspace*{\\fill}\n\n%% delim_2--p" - -%%item_0 "\n\n\\vspace{\\baselineskip}\\hspace{3em}\n \\indexcom{" -%%item_0 "\n\n\\vspace{\\baselineskip}\\hspace{3em}\n %%% item_0 " -item_0 "\n\n\\vspace{\\baselineskip}\\hspace{-.5em}\n %%% item_0 " -item_1 "\n\n\\vspace{\\baselineskip}\\hspace{3em}\n " -item_2 "\n %% item_2" -%%item_01 "\n %% item_01 " -item_01 "}%\n %% item_01\n " -item_x1 "\n " -item_12 "\n\n " -item_x2 "\n %% item_x2" \ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.bib b/Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.bib new file mode 100644 index 00000000000..d1db3f2b1ce --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.bib @@ -0,0 +1,121 @@ +@STRING{tugboat = {TUGboat} } +@STRING{dtk = {{D}ie {\TeX}nische {K}om{\"o}die} } + +@Book{companion, + author = {Michel Goosens and Frank Mittelbach and Sebastian Rahtz and Dennis Roegel and Herbert Vo\ss}, + title = {The {\LaTeX} {G}raphics {C}ompanion}, + publisher = {{Addison-Wesley Publishing Company}}, + edition = {second}, + year = {2007}, + address = {Boston, Mass.} +} + +@Article{girou:01:, + author = {Denis Girou}, + title = {Pr\'esentation de {PST}ricks}, + journal = {Cahier {GUT}enberg}, + year = 1994, + volume = {16}, + month = apr, + pages = {21-70} +} + +@Article{girou:02:, + author = {{Timothy Van} Zandt and Denis Girou}, + title = {Inside {PST}ricks}, + journal = TUGboat, + year = 1994, + volume = {15}, + month = sep, + pages = {239-246} +} + +@Book{PostScript, + Author = {Kollock, Nikolai G.}, + Title = {Post{S}cript richtig eingesetzt: vom {K}onzept zum + praktischen {E}insatz}, + Publisher = {IWT}, + Address = {Vaterstetten}, + year = 1989, +} + +@Manual{multido, + Title = {\texttt{multido.tex} - a loop macro, that supports fixed-point addition}, + Author = {{Timothy Van} Zandt}, + Organization = {}, + Address = {\url{CTAN:/macros/generic/multido.tex}}, + Note = {}, + year = 1997 +} + +@Book{PSTricks2, + author = {Herbert Vo\ss{}}, + title = {\texttt{PSTricks} -- {G}rafik f\"ur \TeX{} und \LaTeX}, + edition = {6.}, + publisher = {DANTE -- Lehmanns}, + year = {2010}, + address = {Heidelberg/Hamburg} +} + +@Book{PSTricksE, + author = {Herbert Vo\ss{}}, + title = {\texttt{PSTricks} -- {G}raphics and {P}ost{S}cript for \LaTeX}, + edition = {1.}, + publisher = {UIT}, + year = {2011}, + address = {Cambridge -- UK} +} + +@Book{LTXquick, + author = {Herbert Vo\ss{}}, + title = {{\LaTeX} quick reference}, + edition = {1.}, + publisher = {UIT}, + year = {2012}, + address = {Cambridge -- UK} +} + +@Book{presentations, + author = {Herbert Vo\ss}, + title = {Presentations with \LaTeX}, + edition = {1.}, + publisher = {DANTE -- Lehmanns Media}, + year = {2012}, + address = {Heidelberg/Berlin} +} + + +@Book{tbt, + author = {Victor Eijkhout}, + title = {\TeX\ by Topic -- {A} \TeX{}nician Reference}, + edition = {1}, + publisher = {DANTE -- lehmanns media}, + year = {2014}, + address = {Heidelberg/Berlin} +} + + + +@Article{dtk02.1:voss:mathematischen, + author = {Herbert Vo{\ss}}, + title = {Die mathematischen {F}unktionen von {P}ostscript}, + journal = dtk, + year = 2002, + volume = {1/02}, + altvolume = 1, + altnumber = 14, + month = mar, + pages = {40-47}, + annote = bretter, + keywords = {}, + abstract = { \PS, faktisch genauso alt wie {\TeX}, ist im + Verh{\"a}ltnis dazu allgemein noch weniger bekannt, wenn es + darum geht zu beurteilen, was es denn nun im eigentlichen + Sinne ist. Au{\ss}erdem wird h{\"a}ufig vergessen, dass + sich mit den \PS-Funktionen viele Dinge erledigen lassen, + bei denen sonst auf externe Programme zur{\"u}ckgegriffen + wird. Dies wird im Folgenden f{\"u}r die mathematischen + Funktionen im Zusammenhang mit dem Paket \texttt{pst-plot} + gezeigt. } +} + diff --git a/Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.pdf b/Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.pdf index 830147ed5dc..548ae63f5f5 100644 Binary files a/Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.pdf and b/Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.pdf differ diff --git a/Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.tex b/Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.tex new file mode 100644 index 00000000000..76a3e17faee --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.tex @@ -0,0 +1,2040 @@ +\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,smallheadings + headexclude,footexclude,oneside,english]{pst-doc} +\usepackage[utf8]{inputenc} +\usepackage{pst-eucl} +\usepackage{multicol} +\let\pstEuclideFV\fileversion +\usepackage{pst-plot,paralist} +\usepackage[mathscr]{eucal} +\lstset{pos=l,wide=false,language=PSTricks, + morekeywords={multidipole,parallel},basicstyle=\footnotesize\ttfamily} +% +\def\Argsans#1{$\langle$#1$\rangle$} +\def\DefaultVal#1{(by default #1)} + + +\title{\texttt{pst-euclide}} +\subtitle{A PSTricks package for drawing geometric pictures; v.\pstEuclideFV} +\author{Dominique Rodriguez\\Herbert Voß} +\docauthor{Herbert Voß} +\date{\today} +\begin{document} +\maketitle + +\begin{abstract} + The \LPack{pst-eucl} package allow the drawing of Euclidean + geometric figures using \LaTeX\ macros for specifying mathematical + constraints. It is thus possible to build point using common + transformations or intersections. The use of coordinates is limited + to points which controlled the figure. + + \vfill + I would like to thanks the following persons for the help they gave + me for development of this package: + + \begin{compactitem} + \item Denis Girou pour ses critiques pertinentes et ses + encouragement lors de la découverte de l'embryon initial et pour + sa relecture du présent manuel; + \item Michael Vulis for his fast testing of the documentation using + V\TeX\ which leads to the correction of a bug in the \PS\ code; + \item Manuel Luque and Olivier Reboux for their remarks and their examples. + \item Alain Delplanque for its modification propositions on automatic + placing of points name and the ability of giving a list of points in + \Lcs{pstGeonode}. + \end{compactitem} +\end{abstract} + + +\vfill +\noindent +Thanks to: +Manuel Luque; +Thomas Söll. + + + +\clearpage +\tableofcontents + + +\clearpage +\part{The package} +\section{Special specifications} + +\subsection{\PST Options} + +The package activates the \Lcs{SpecialCoor} mode. This mode extend the +coordinates specification. Furthermore the plotting type is set to +\Lkeyset{dimen=middle}, which indicates that the position of the +drawing is done according to the middle of the line. Please look at +the user manual for more information about these setting. + +At last, the working axes are supposed to be (ortho)normed. + +\subsection{Conventions} + +For this manual, I used the geometric French conventions for naming +the points: + +\begin{compactitem} +\item $O$ is a centre (circle, axes, symmetry, homothety, rotation); +\item $I$ defined the unity of the abscissa axe, or a midpoint; +\item $J$ defined the unity of the ordinate axe; +\item $A$, $B$, $C$, $D$ are points ; +\item $M'$ is the image of $M$ by a transformation ; +\end{compactitem} + +At last, although these are nodes in \PST, I treat them +intentionally as points. + +\section{Basic Objects} +\subsection{Points} +%\subsubsection{default axes} + +%\defcom[Creates a list of points using the common axis. \protect\ParamList{\param{PointName}, +% \param{PointNameSep}, \param{PosAngle}, \param{PointSymbol}, \param{PtNameMath}}] +\begin{BDef} +\Lcs{pstGeonode}\OptArgs\coord1\Largb{$A_1$}\coord2\Largb{$A_1$}\ldots\cAny\Largb{$A_n$} +\end{BDef} +This command defines one or more geometrical points associated with a node in the default cartesian coordinate system. Each +point has a node name $A_i$ which defines the default label put on the +picture. This label is managed by default in mathematical mode, the boolean parameter +\Lkeyword{PtNameMath} (default \true) can modify this behavior and let manage the +label in normal mode. It is placed at a distance of \Lkeyword{PointNameSep} +(default 1em) of the center of the node with a angle of +\Lkeyword{PosAngle} (default 0). It is possible to specify another label using the +parameter \Lkeyset{PointName=default}, and an empty label can be specified +by selecting the value \Lkeyval{none}, in that case the point will have no name on the +picture. + +The point symbol is given by the parameter \Lkeyset{PointSymbol=*}. The +symbol is the same as used by the macro \Lcs{psdot}. This parameter can be set to +\texttt{none}, which means that the point will not be drawn on the picture. + +Here are the possible values for this parameter: + +\begin{multicols}{3} + \begin{compactitem}\psset{dotscale=2} + \item \Lkeyword{*}: \psdots(.5ex,.5ex) + \item \Lkeyword{o}: \psdots[dotstyle=o](.5ex,.5ex) + \item \Lkeyword{+}: \psdots[dotstyle=+](.5ex,.5ex) + \item \Lkeyword{x}: \psdots[dotstyle=x](.5ex,.5ex) + \item \Lkeyword{asterisk} : \psdots[dotstyle=asterisk](.5ex,.5ex) + \item \Lkeyword{oplus}: \psdots[dotstyle=oplus](.5ex,.5ex) + \item \Lkeyword{otimes}: \psdots[dotstyle=otimes](.5ex,.5ex) + \item \Lkeyword{triangle}: \psdots[dotstyle=triangle](.5ex,.5ex) + \item \Lkeyword{triangle*}: \psdots[dotstyle=triangle*](.5ex,.5ex) + \item \Lkeyword{square}: \psdots[dotstyle=square](.5ex,.5ex) + \item \Lkeyword{square*}: \psdots[dotstyle=square*](.5ex,.5ex) + \item \Lkeyword{diamond}: \psdots[dotstyle=diamond](.5ex,.5ex) + \item \Lkeyword{diamond*}: \psdots[dotstyle=diamond*](.5ex,.5ex) + \item \Lkeyword{pentagon}: \psdots[dotstyle=pentagon](.5ex,.5ex) + \item \Lkeyword{pentagon*}: \psdots[dotstyle=pentagon*](.5ex,.5ex) + \item \Lkeyword{|}: \psdots[dotstyle=|](.5ex,.5ex) + \end{compactitem} +\end{multicols} + +Furthermore, these symbols can be controlled with some others \PST, +several of these are : + +\begin{compactitem} +\item their scale with \Lkeyword{dotscale}, the value of whom is either two numbers + defining the horizontal and vertical scale factor, or one single value being the + same for both, +\item their angle with parameter \Lkeyword{dotangle}. +\end{compactitem} + +Please consult the \PST documentation for further details. +The +parameters \Lkeyword{PosAngle}, \Lkeyword{PointSymbol}, \Lkeyword{PointName} and +\Lkeyword{PointNameSep} can be set to : + +\begin{compactitem} +\item either a single value, the same for all points ; +\item or a list of values delimited by accolads \texttt{\{ ... \}} and + separated with comma \textit{without any blanks}, allowing to differenciate the + value for each point. +\end{compactitem} + +In the later case, the list can have less values than point which means that the +last value is used for all the remaining points. +% +At least, the parameter setting \Lkeyword{CurveType=none} can be used to +draw a line between the points: + +\begin{compactitem} +\item opened \verb$polyline$ ; +\item closed \verb$polygon$ ; +\item open and curved \verb$curve$. +\end{compactitem} + +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid=true](-2,-2)(3,3) +\pstGeonode{A} +\pstGeonode[PosAngle=-135, PointNameSep=1.3](0,3){B_1} +\pstGeonode[PointSymbol=pentagon, dotscale=2, fillstyle=solid, + fillcolor=OliveGreen, PtNameMath=false, + PointName=$B_2$, linecolor=red](-2,1){B2} +\pstGeonode[PosAngle={90,0,-90}, PointSymbol={*,o}, + linestyle=dashed, CurveType=polygon, + PointNameSep={1em,2em,3mm}] + (1,2){M_1}(2,1){M_2}(1,0){M_3} +\pstGeonode[PosAngle={50,100,90}, PointSymbol={*,x,default}, + PointNameSep=3mm, CurveType=curve, + PointName={\alpha,\beta,\gamma,default}] + (-2,0){alpha}(-1,-2){beta}(0,-1){gamma}(2,-1.5){T} +\end{pspicture} +\end{LTXexample} + +Obviously, the nodes appearing in the picture can be used as normal +\PST nodes. Thus, it is possible to reference a point from +\rnode{ici}{here}. +\nccurve[arrowscale=2]{->}{ici}{B_1} + +%\subsubsection{User defined axes} + +\Lcs{pstOIJGeonode} creates a list of points in the landmark $(O;I;J)$. Possible +parameters are \Lkeyword{PointName}, \Lkeyword{PointNameSep}, \Lkeyword{PosAngle}, + \Lkeyword{PointSymbol}, and \Lkeyword{PtNameMath}. +\begin{BDef} +\Lcs{pstOIJGeonode}\OptArgs\coord1\Largb{$A_1$}\Largb{$O$}\Largb{$I$}\Largb{$J$} + \coord2\Largb{$A_2$}\ldots\cAny\Largb{$A_n$} +\end{BDef} + +\clearpage + + +\begin{LTXexample}[width=5.6cm,pos=l] +\psset{unit=.7} +\begin{pspicture*}[showgrid=true](-4,-4)(4,4) + \pstGeonode[PosAngle={-135,-90,180}]{O}(1,0.5){I}(0.5,2){J} + \pstLineAB[nodesep=10]{O}{I} + \pstLineAB[nodesep=10]{O}{J} + \multips(-5,-2.5)(1,0.5){11}{\psline(0,-.15)(0,.15)} + \multips(-2,-8)(0.5,2){9}{\psline(-.15,0)(.15,0)} + \psset{linestyle=dotted}% + \multips(-5,-2.5)(1,0.5){11}{\psline(-10,-40)(10,40)} + \multips(-2,-8)(0.5,2){9}{\psline(-10,-5)(10,5)} + \psset{PointSymbol=x, linestyle=solid} + \pstOIJGeonode[PosAngle={-90,0}, CurveType=curve, + linecolor=red] (3,1){A}{O}{I}{J}(-2,1){B}(-1,-1.5){C}(2,-1){D} +\end{pspicture*} +\end{LTXexample} + + +\subsection{Segment mark} + +A segment can be drawn using the \Lcs{ncline} command. However, +for marking a segment there is the following command: + +\begin{BDef} +\Lcs{pstMarkSegment}\OptArgs\Largb{A}\Largb{B} +\end{BDef} + + + + +The symbol drawn on the segment is given by the parameter +\Lkeyword{SegmentSymbol}. Its value can be any valid command which can be +used in math mode. Its default value is \Lkeyval{pstslashh}, +which produced two slashes on the segment. The segment is drawn. + +Several commands are predefined for marking the segment: + +\begingroup +\psset{PointSymbol=none,PointName=none,unit=.8} + \newcommand\Seg[1]{% + \Lcs{#1} \begin{pspicture}[shift=*](1.75,1) + \pstGeonode(0.3,.5){A}(1.7,.5){B}\pstSegmentMark[SegmentSymbol=#1]{A}{B} + \end{pspicture}}% +\begin{multicols}{3} + \begin{compactitem} + \item \Seg{pstslash} + \item \Seg{pstslashh} + \item \Seg{pstslashhh} + \item \Seg{MarkHash} + \item \Seg{MarkHashh} + \item \Seg{MarkHashhh} + \item \Seg{MarkCros} + \item \Seg{MarkCross} + \end{compactitem} +\end{multicols} +\endgroup + +The three commands of the family \nxLcs{MarkHash} draw a line whose inclination is +controled by the parameter \Lkeyword{MarkAngle} (default is 45). Their width and colour +depends of the width and color of the line when the drawing is done, ass shown is the +next example. + + + +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid=true](-2,-2)(2,2) + \rput{18}{% + \pstGeonode[PosAngle={0,90,180,-90}](2,0){A}(2;72){B} + (2;144){C}(2;216){D}(2;288){E}} + \pstSegmentMark{A}{B} + \pstSegmentMark[linecolor=green]{B}{C} + \psset{linewidth=2\pslinewidth} + \pstSegmentMark[linewidth=2\pslinewidth]{C}{D} + \pstSegmentMark{D}{E} + \pstSegmentMark{E}{A} +\end{pspicture} +\end{LTXexample} + + +The length and the separation of multiple hases can be set by \Lkeyword{MarkHashLength} and \Lkeyword{MarkHashSep}. + + + +\subsection{Triangles} + +The more classical figure, it has its own macro for a quick definition: + +\begin{BDef} +\Lcs{pstTriangle}\OptArgs\coord1\Largb{A}\coord2\Largb{B}\coord3\Largb{C} +\end{BDef} + + +\begin{sloppypar} +Valid optional arguments are \Lkeyword{PointName}, + \Lkeyword{PointNameSep}, \Lkeyword{PosAngle}, \Lkeyword{PointSymbol}, \Lkeyword{PointNameA}, + \Lkeyword{PosAngleA}, \Lkeyword{PointSymbolA}, \Lkeyword{PointNameB}, + \Lkeyword{PosAngleB}, \Lkeyword{PointSymbolB}, \Lkeyword{PointNameC}, + \Lkeyword{PosAngleC}, and \Lkeyword{PointSymbolC}. +% $(x_A;y_A)$\Arg{$A$}$(x_B;y_B)$\Arg{$B$}$(x_C;y_C)$\Arg{$C$}} +% +In order to accurately put the name of the points, there are three parameters +\Lkeyword{PosAngleA}, \Lkeyword{PosAngleB} and \Lkeyword{PosAngleC}, which are associated +respectively to the nodes \Argsans{$A$}, \Argsans{$B$} and \Argsans{$C$}. Obviously +they have the same meaning as the parameter \Lkeyword{PosAngle}. If one or more of such +parameters is omitted, the value of \Lkeyword{PosAngle} is taken. If no angle +is specified, points name are placed on the bissector line. +\end{sloppypar} + +In the same way there are parameters for controlling the symbol used +for each points: \Lkeyword{PointSymbolA}, \Lkeyword{PointSymbolB} and +\Lkeyword{PointSymbolC}. They are equivalent to the parameter +\Lkeyword{PointSymbol}. The management of the default value followed the +same rule. + +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid](-2,-2)(2,2) +\pstTriangle[PointSymbol=square,PointSymbolC=o, + linecolor=blue,linewidth=1.5\pslinewidth] + (1.5,-1){A}(0,1){B}(-1,-.5){C} +\end{pspicture} +\end{LTXexample} + + +\subsection{Angles} + +Each angle is defined with three points. The vertex is the second +point. Their order is important because it is assumed that the angle is +specified in the direct order. The first command is the marking of a +right angle: + + +\begin{BDef} +\Lcs{pstRightAngle}\OptArgs\Largb{A}\Largb{B}\Largb{C} +\end{BDef} + + +\begin{sloppypar} +Valid optional arguments are \Lkeyword{RightAngleType}, \Lkeyword{RightAngleSize}, and + \Lkeyword{RightAngleSize} +\end{sloppypar} + +The symbol used is controlled by the parameter \Lkeyword{RightAngleType} +\nxLkeyval{default}. Its possible values are : + +\begin{compactitem} +\item \Lkeyval{default} : standard symbol ; +\item \Lkeyval{german} : german symbol (given by U. Dirr) ; +\item \Lkeyval{suisseromand} : swiss romand symbol (given P. Schnewlin). +\end{compactitem} + +The only parameter controlling this command, excepting the ones which +controlled the line, is \Lkeyword{RightAngleSize} which defines the size +of the symbol \DefaultVal{0.28 unit}. + +For other angles, there is the command: + +\begin{BDef} +\Lcs{pstMarkAngle}\OptArgs\Largb{A}\Largb{B}\Largb{C} +\end{BDef} + + +\begin{sloppypar} +Valid optional arguments are \Lkeyword{MarkAngleRadius}, \Lkeyword{LabelAngleOffset}, and + \Lkeyword{Mark} +% +The \Lkeyword{label} can be any valid \TeX\ box, it is put at \Lkeyword{LabelSep} +\DefaultVal{1 unit} of the node in the direction of the bisector of the angle +modified by \Lkeyword{LabelAngleOffset}\DefaultVal{0} and positioned using +\Lkeyword{LabelRefPt} \DefaultVal{c}. Furthermore the arc used for marking has a radius +of \Lkeyword{MarkAngleRadius} \DefaultVal{.4~unit}. At least, it is possible to place +an arrow using the parameter \Lkeyword{arrows}.Finally, it is possible to mark +the angle by specifying a \TeX{} command as argument of parameter \Lkeyword{Mark}. +\end{sloppypar} + +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid](-2,-2)(2,2) +\psset{PointSymbol=none} +\pstTriangle(2;15){A}(2;85){B}(2;195){C} +\psset{PointName=none} +\pstTriangle[PointNameA=default](2;-130){B'}(2;15){A'}(2;195){C'} +\pstTriangle[PointNameA=default](2;-55){B''}(2;15){A''}(2;195){C''} +\pstRightAngle[linecolor=red]{C}{B}{A} +\pstRightAngle[linecolor=blue, RightAngleType=suisseromand]{A}{B'}{C} +\pstRightAngle[linecolor=magenta, RightAngleType=german]{A}{B''}{C} +\psset{arcsep=\pslinewidth} +\pstMarkAngle[linecolor=cyan, Mark=MarkHash]{A}{C}{B}{$\theta$} +\pstMarkAngle[linecolor=red, arrows=->]{B}{A}{C}{$\gamma$} +\end{pspicture} +\end{LTXexample} + + + +\subsection{Lines, half-lines and segments} + +The classical line $(\overline{AB})$! + +\begin{BDef} +\Lcs{pstLineAB}\OptArgs\Largb{A}\Largb{B} +\end{BDef} + +In order to control its length\footnote{which is the comble for a +line!}, the two parameters \Lkeyword{nodesepA} et \Lkeyword{nodesepB} +specify the abscissa of the extremity of the drawing part of the line. +A negative abscissa specify an outside point, while a positive +abscissa specify an internal point. If these parameters have to be +equal, \Lkeyword{nodesep} can be used instead. The default value of these +parameters is equal to 0. + +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid](-2,-2)(2,2) +\pstGeonode(1,1){A}(-1,-1){B} +\pstLineAB[nodesepA=-.4,nodesepB=-1, + linecolor=green]{A}{B} +\pstLineAB[nodesep=.4,linecolor=red]{A}{B} +\end{pspicture} +\end{LTXexample} + + + + + + \subsection{Circles} + +A circle can be defined either with its center and a point of its +circumference, or with two diameterly opposed points. There is two +commands : + + +\begin{BDef} +\Lcs{pstCircleOA}\OptArgs\Largb{O}\Largb{A}\\ +\Lcs{pstCircleAB}\OptArgs\Largb{O}\Largb{A}\\ +\Lcs{pstDistAB}\OptArgs\Largb{A}\Largb{B}\\ +\Lcs{pstDistVal}\OptArgs\Largb{x} +\end{BDef} + +%\Lcs{pstCircleOA} draws the circle of center $O$ crossing $A$. Possible options are \Lkeyword{Radius} and +% \Lkeyword{Diameter}. + +%\Lcs{pstCircleAB} draws the circle of diameter $AB$ with the same options. + + +For the first macro, it is possible to omit the second point and then +to specify a radius or a diameter using the parameters \Lkeyword{Radius} +and \Lkeyword{Diameter}. The values of these parameters must be specified +with one of the two following macros : + +%\Lcs{pstDistAB} Specifies distance $AB$ for the parameters +% \Lkeyword{Radius}, \Lkeyword{Diameter} and \Lkeyword{DistCoef}. + +%\Lcs{pstDistVal} Specifies a numerical value for the parameters +% \Lkeyword{Radius}, \Lkeyword{Diameter}, and \Lkeyword{DistCoef}. + + +The first specifies a distance between two points. The parameter +\Lkeyword{DistCoef} can be used to specify a coefficient to reduce or +enlarge this distance. To be taken into account this last parameter +must be specified before the distance. The second macro can be used to +specify an explicit numeric value. +% +We will see later how to draw the circle crossing three points. +% + With this package, it becomes possible to draw: + \begin{compactitem} + \item {\color{red} the circle of center $A$ crossing $B$;} + \item {\color{green} the circle of center $A$ whose radius is $AC$;} + \item {\color{blue} the circle of center $A$ whose radius is $BC$;} + \item {\color{Sepia} the circle of center $B$ whose radius is $AC$;} + \item {\color{Aquamarine} the circle of center $B$ of diameter $AC$;} + \item {\color{RoyalBlue} the circle whose diameter is $BC$.} + \end{compactitem} + +\enlargethispage{3\normalbaselineskip} + +\bigskip +\begin{pspicture}[showgrid](-4,-3.3)(5,3) +\psset{linewidth=2\pslinewidth} +\pstGeonode[PosAngle={0,-135,90},PointSymbol={*,*,square}](1,0){A}(-2,-1){B}(0,1){C} +\pstCircleOA[linecolor=red]{A}{B} +\pstCircleOA[linecolor=green, DistCoef=2 3 div, Radius=\pstDistAB{A}{C}]{A}{} +\pstCircleOA[linecolor=blue, Radius=\pstDistAB{B}{C}]{A}{} +\pstCircleOA[linecolor=Sepia, Radius=\pstDistAB{A}{C}]{B}{} +\pstCircleOA[linecolor=Aquamarine, Diameter=\pstDistAB{A}{C}]{B}{} +\pstCircleAB[linecolor=RoyalBlue]{B}{C} +\end{pspicture} + + +\clearpage + +\begin{lstlisting} +\begin{pspicture}[showgrid](-4,-4)(5,3) +\psset{linewidth=2\pslinewidth} +\pstGeonode[PosAngle={0,-135,90},PointSymbol={*,*,square}](1,0){A}(-2,-1){B}(0,1){C} +\pstCircleOA[linecolor=red]{A}{B} +\pstCircleOA[linecolor=green, DistCoef=2 3 div, Radius=\pstDistAB{A}{C}]{A}{} +\pstCircleOA[linecolor=blue, Radius=\pstDistAB{B}{C}]{A}{} +\pstCircleOA[linecolor=Sepia, Radius=\pstDistAB{A}{C}]{B}{} +\pstCircleOA[linecolor=Aquamarine, Diameter=\pstDistAB{A}{C}]{B}{} +\pstCircleAB[linecolor=RoyalBlue]{B}{C} +\end{pspicture} +\end{lstlisting} + + + \subsection{Circle arcs} + + + +\begin{BDef} +\Lcs{pstArcOAB}\OptArgs\Largb{O}\Largb{A}\Largb{B}\\ +\Lcs{pstArcnOAB}\OptArgs\Largb{O}\Largb{A}\Largb{B} +\end{BDef} + + +These two macros draw circle arcs, $O$ is the center, the radius +defined by $OA$, the beginning angle given by $A$ and the final angle +by $B$. Finally, the first macro draws the arc in the direct way, +whereas the second in the indirect way. It is not necessary that the +two points are at the same distance of $O$. + +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid](-2,-2)(2,2) +\pstGeonode[PosAngle={180,0}](1.5;24){A}(1.8;-31){B} +\pstGeonode{O} +\psset{arrows=->,arrowscale=2} +\pstArcOAB[linecolor=red,linewidth=1pt]{O}{A}{B} +\pstArcOAB[linecolor=blue,linewidth=1pt]{O}{B}{A} +\pstArcnOAB[linecolor=green]{O}{A}{B} +\pstArcnOAB[linecolor=magenta]{O}{B}{A} +\end{pspicture} +\end{LTXexample} + +\subsection{Curved abscissa} + +A point can be positioned on a circle using its curved abscissa. + + + + +\begin{BDef} +\Lcs{pstCurvAbsNode}\OptArgs\Largb{O}\Largb{A}\Largb{B}\Largb{Abs} +\end{BDef} + +\begin{sloppypar} +Possible optional arguments are \Lkeyword{PointSymbol}, \Lkeyword{PosAngle}, + \Lkeyword{PointName}, \Lkeyword{PointNameSep}, \Lkeyword{PtNameMath}, and \Lkeyword{CurvAbsNeg}. +% +The point \Argsans{$B$} is positioned on the circle of center +\Argsans{$O$} crossing \Argsans{$A$}, with the curved abscissa +\Argsans{Abs}. The origin is \Argsans{$A$} and the direction is +anti-clockwise by default. The parameter \Lkeyword{CurvAbsNeg} +\DefaultVal{false} can change this behavior. +\end{sloppypar} + +If the parameter \Lkeyword{PosAngle} is not specified, the point label is put +automatically in oirder to be alined with the circle center and the point. + +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid](-2.5,-2.5)(2.5,2.5) +\pstGeonode{O}(2,0){A} +\pstCircleOA{O}{A} +\pstCurvAbsNode{O}{A}{M_1}{\pstDistVal{5}} +\pstCurvAbsNode[CurvAbsNeg=true]% + {O}{A}{M_2}{\pstDistAB{A}{M_1}} +\end{pspicture} +\end{LTXexample} + +\subsection{Generic curve} + +It is possible to generate a set of points using a loop, and to give +them a generic name defined by a radical and a number. The following +command can draw a interpolated curve crossing all such kind of +points. + +\begin{BDef} +\Lcs{pstGenericCurve}\OptArgs\Largb{Radical}\Largb{$n_1$}\Largb{$n_2$} +\end{BDef} + +\begin{sloppypar} +Possible optional arguments are \Lkeyword{GenCurvFirst}, \Lkeyword{GenCurvInc}, and + \Lkeyword{GenCurvLast} +The curve is drawn on the points whose name is defined using the +radical \Argsans{Radical} followed by a number from \Argsans{$n_1$} to +\Argsans{$n_2$}. In order to manage side effect, the parameters +\Lkeyword{GenCurvFirst} et \Lkeyword{GenCurvLast} can be used to specified +special first or last point. The parameter \Lkeyword{GenCurvInc} can be +used to modify the increment from a point to the next one +\DefaultVal{1}. +\end{sloppypar} + + +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid](-2.5,-2.5)(2.5,1) +\psset{unit=.00625} +\pstGeonode{A} +\multido{\n=20+20}{18}{% + \pstGeonode[PointName=M_{\n}](\n;\n){M_\n}} +\pstGenericCurve[GenCurvFirst=A,GenCurvInc=20, + linecolor=blue,linewidth=.5\pslinewidth]{M_}{20}{360} + \end{pspicture} +\end{LTXexample} + +\section{Geometric Transformations} + +The geometric transformations are the ideal tools to construct geometric figures. All +the classical transformations are available with the following macros which +share the same syntaxic scheme end two parameters. + +The common syntax put at the end two point lists whose second is optional or with a +cardinal at least equal. These two lists contain the antecedent points and their +respective images. In the case no image is given for some points the a default name +is build appending a\verb$'$ to the antecedent name. + +The first shared parameter is \Lkeyword{CodeFig} which draws the specific +constructions lines. Its default value is \Lkeyword{false}, and a +\Lkeyword{true} value activates this optional drawing. +The drawing is done using the line style \Lkeyword{CodeFigStyle} +\DefaultVal{dashed}, with the color \Lkeyword{CodeFigColor} +\DefaultVal{cyan}. + +Their second shared parameter is \Lkeyword{CurveType} which controls the drawing of a +line crossing all images, and thus allow a quick description of a transformed figure. + +\subsection{Central symmetry} + +\begin{BDef} +\Lcs{pstSymO}\OptArgs\Largb{$O$}\Largb{$M_1, M_2, \cdots, M_n$}\OptArg{$M'_1, M'_2, \cdots, M'_p$} +\end{BDef} + +\begin{sloppypar} +Possible optional arguments are + \Lkeyword{PointSymbol}, \Lkeyword{PosAngle}, + \Lkeyword{PointName}, \Lkeyword{PointNameSep}, \Lkeyword{PtNameMath}, + \Lkeyword{CodeFig}, \Lkeyword{CodeFigColor}, and \Lkeyword{CodeFigStyle}. +Draw the symmetric point in relation to point $O$. The classical +parameter of point creation are usable here, and also for all the +following functions. +\end{sloppypar} + +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid](-2,-2)(2,2) +\psset{CodeFig=true} +\pstGeonode[PosAngle={20,90,0}]{O}(-.6,1.5){A}(1.6,-.5){B} +\pstSymO[CodeFigColor=blue, + PosAngle={-90,180}]{O}{A, B}[C, D] +\pstLineAB{A}{B}\pstLineAB{C}{D} +\pstLineAB{A}{D}\pstLineAB{C}{B} +\end{pspicture} +\end{LTXexample} + +\subsection{Orthogonal (or axial) symmetry} + +\begin{BDef} +\Lcs{pstOrtSym}\OptArgs\Largb{$A$}\Largb{$B$}\Largb{$M_1, M_2, \cdots, M_n$}\OptArg{$M'_1, M'_2, \cdots, M'_p$} +\end{BDef} + +\begin{sloppypar} +Possible optional arguments are +\Lkeyword{PointSymbol}, \Lkeyword{PosAngle}, + \Lkeyword{PointName}, \Lkeyword{PointNameSep}, \Lkeyword{PtNameMath}, + \Lkeyword{CodeFig}, \Lkeyword{CodeFigColor}, and \Lkeyword{CodeFigStyle}. +% +Draws the symmetric point in relation to line $(AB)$. +\end{sloppypar} + +\begin{LTXexample}[width=5cm,pos=l] +\psset{unit=0.6} +\begin{pspicture}[showgrid](0,-2)(8,7) +\pstTriangle(1,3){B}(5,5){C}(4,1){A} +\pstOrtSym{A}{B}{C}[D] +\psset{CodeFig=true} +\pstOrtSym[dash=2mm 2mm,CodeFigColor=red]% + {C}{B}{A} +\pstOrtSym[SegmentSymbol=pstslash, + linestyle=dotted,dotsep=3mm,CodeFigColor=blue]% + {C}{A}{B} +\end{pspicture} +\end{LTXexample} + + +\subsection{Rotation} + + +\begin{BDef} +\Lcs{pstRotation}\OptArgs\Largb{$O$}\Largb{$M_1, M_2, \cdots, M_n$}\OptArg{$M'_1, M'_2, \cdots, M'_p$}\\ +\Lcs{pstAngleAOB}\Largb{$A$}\Largb{$O$}\Largb{$B$} +\end{BDef} + +\begin{sloppypar} +Possible optional arguments are + \Lkeyword{PointSymbol}, \Lkeyword{PosAngle}, + \Lkeyword{PointName}, \Lkeyword{PointNameSep}, \Lkeyword{PtNameMath}, and \Lkeyword{RotAngle} +for \Lcs{pstRotation} and \Lkeyword{AngleCoef}, \Lkeyword{RotAngle} for \Lcs{pstAngleABC}. +% +Draw the image of $M_i$ by the rotation of center $O$ and angle given by +the parameter \Lkeyword{RotAngle}. This later can be an angle specified +by three points. In such a case, the following function must be used: +\end{sloppypar} + + + +Never forget to use the rotation for drawing a square or an equilateral +triangle. The parameter \Lkeyword{CodeFig} puts a bow with an arrow between the +point and its image, and if \Lkeyword{TransformLabel} \DefaultVal{none} +contain some text, it is put on the corresponding angle in mathematical mode. + +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid](-2,-2)(2,2) +\psset{arrowscale=2} +\pstGeonode[PosAngle=-135](-1.5,-.2){A}% + (.5,.2){B}(0,-2){D} +\pstRotation[PosAngle=90,RotAngle=60, + CodeFig,CodeFigColor=blue, + TransformLabel=\frac{\pi}{3}]{A}{B}[C] +\pstRotation[AngleCoef=.5, + RotAngle=\pstAngleAOB{B}{A}{C}, + CodeFigColor=red, CodeFig, + TransformLabel=\frac{1}{2}\widehat{BAC}]{A}{D}[E] +\end{pspicture} +\end{LTXexample} + + + \subsection{Translation} + +\begin{BDef} +\Lcs{pstTranslation}\OptArgs\Largb{$A$}\Largb{$B$}\Largb{$M_1, M_2, \cdots, M_n$}\OptArg{$M'_1, M'_2, \cdots, M'_p$} +\end{BDef} + +\begin{sloppypar} +Possible optional arguments are +\Lkeyword{PointSymbol}, \Lkeyword{PosAngle}, + \Lkeyword{PointName}, \Lkeyword{PointNameSep}, \Lkeyword{PtNameMath}, and \Lkeyword{DistCoef} +% +Draws the translated $M'_i$ of $M_i$ using the vector $\vec{AB}$. Useful for drawing a +parallel line. +\end{sloppypar} + +The parameter \Lkeyword{DistCoef} can be used as a multiplicand +coefficient to modify the translation vector. The parameter \Lkeyword{CodeFig} +draws the translation vector le vecteur de translation between the +point and its image, labeled in its middle defaultly with the vector name or by the +text specified with \Lkeyword{TransformLabel} \DefaultVal{none}. + +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid](-2,-2)(2,2) +\psset{linecolor=green,nodesep=-1, + PosAngle=90,arrowscale=2} +\pstGeonode(-1.5,-1.2){A}(.5,-.8){B}(.5,1){C}(-1,0){D}(-2,-2){E} +\pstTranslation{B}{A}{C} +\psset{CodeFig,TransformLabel=default} +\pstTranslation{A}{B}{D} +\pstTranslation[DistCoef=1.5]{A}{B}{E} +\pstLineAB{A}{B}\pstLineAB{C}{C'} +\end{pspicture} +\end{LTXexample} + + + +\subsection{Homothetie} + + +\begin{BDef} +\Lcs{pstHomO}\OptArgs\Largb{$O$}\Largb{$M_1, M_2, \cdots, M_n$}\OptArg{$M'_1, M'_2, \cdots, M'_p$} +\end{BDef} + +\begin{sloppypar} +Possible optional arguments are +\Lkeyword{HomCoef}, + \Lkeyword{PointSymbol}, \Lkeyword{PosAngle}, + \Lkeyword{PointName}, \Lkeyword{PointNameSep}, \Lkeyword{PtNameMath}, and \Lkeyword{HomCoef}. +% +Draws $M'_i$ the image of $M_i$ by the homotethy of center $O$ and +coefficient specified with the parameter \Lkeyword{HomCoef}. +\end{sloppypar} + +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid](-2,-2)(2,2) +\pstGeonode[PosAngle={0,-45}](.5,1){O}% + (-1.5,-1.2){A}(.5,-.8){B} +\pstHomO[HomCoef=.62,PosAngle=-45]{O}{A,B}[C,D] +\psset{linecolor=green,nodesep=-1} +\pstLineAB{A}{O}\pstLineAB{B}{O} +\psset{linecolor=red,nodesep=-.5} +\pstLineAB{A}{B}\pstLineAB{C}{D} +\end{pspicture} +\end{LTXexample} + + +\subsection{Orthogonal projection} + + +\begin{BDef} +\Lcs{pstProjection}\OptArgs\Largb{$A$}\Largb{$B$}\Largb{$M_1, M_2, \cdots, M_n$}\OptArg{$M'_1, M'_2, \cdots, M'_p$} +\end{BDef} + +\begin{sloppypar} +Possible optional arguments are + \Lkeyword{PointSymbol}, \Lkeyword{PosAngle}, + \Lkeyword{PointName}, \Lkeyword{PointNameSep}, \Lkeyword{PtNameMath}, + \Lkeyword{CodeFig}, \Lkeyword{CodeFigColor}, and\Lkeyword{CodeFigStyle} +% +Projects orthogonally the point $M_i$ on the line $(AB)$. Useful for the altitude of a +triangle. The name is aligned with the point and the projected point as +shown in the exemple. +\end{sloppypar} + +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid](-3,-2)(2,2) +\psset{PointSymbol=none,CodeFig,CodeFigColor=red} +\pstTriangle(1,1){A}(-2,1){C}(-1,-1){B} +\pstProjection{A}{B}{C}[I] +\pstProjection{A}{C}{B}[J] +\pstProjection{C}{B}{A}[K] +\end{pspicture} +\end{LTXexample} + +\section{Special object} + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \subsection{Midpoint} + + + +\begin{BDef} +\Lcs{pstMiddleAB}\OptArgs\Largb{$A$}\Largb{$B$}\Largb{$I$} +\end{BDef} + +\begin{sloppypar} +\Lkeyword{PointSymbol}, \Lkeyword{PosAngle}, + \Lkeyword{PointName}, \Lkeyword{PointNameSep}, \Lkeyword{PtNameMath}, \Lkeyword{SegmentSymbol}, + \Lkeyword{CodeFig}, \Lkeyword{CodeFigColor}, and \Lkeyword{CodeFigStyle} +% +Draw the midpoint $I$ of segment $[AB]$. By default, the point name is +automatically put below the segment. +\end{sloppypar} + +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid](-3,-2)(2,2) +\pstTriangle[PointSymbol=none]% + (1,1){A}(-1,-1){B}(-2,1){C} +\pstMiddleAB{A}{B}{C'} +\pstMiddleAB{C}{A}{B'} +\pstMiddleAB{B}{C}{A'} +\end{pspicture} +\end{LTXexample} + + + \subsection{Triangle center of gravity} + + +\begin{BDef} +\Lcs{pstCGravABC}\OptArgs\Largb{$A$}\Largb{$B$}\Largb{$C$}\Largb{$G$} +\end{BDef} + +\begin{sloppypar} +Possible optional arguments are +\Lkeyword{PointName}, \Lkeyword{PointNameSep}, \Lkeyword{PosAngle}, + \Lkeyword{PointSymbol}, and \Lkeyword{PtNameMath} +% +Draw the $ABC$ triangle centre of gravity $G$. +\end{sloppypar} + +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid](-3,-2)(2,2) +\pstTriangle[PointSymbol=none]% + (1,1){A}(-1,-1){B}(-2,1){C} +\pstCGravABC{A}{B}{C}{G} +\end{pspicture} +\end{LTXexample} + + + \subsection{Centre of the circumcircle of a triangle} + + + +\begin{BDef} +\Lcs{pstCircleABC}\OptArgs\Largb{$A$}\Largb{$B$}\Largb{$C$}\Largb{$O$} +\end{BDef} + +\begin{sloppypar} +Possible optional arguments are +\Lkeyword{PointName}, \Lkeyword{PointNameSep}, \Lkeyword{PosAngle}, + \Lkeyword{PointSymbol}, \Lkeyword{PtNameMath}, \Lkeyword{DrawCirABC}, \Lkeyword{CodeFig}, + \Lkeyword{CodeFigColor}, \Lkeyword{CodeFigStyle}, \Lkeyword{SegmentSymbolA}, + \Lkeyword{SegmentSymbolB}, and \Lkeyword{SegmentSymbolC}. +% +Draws the circle crossing three points (the circum circle) and put its center $O$. +The effective drawing is controlled by the boolean parameter \Lkeyword{DrawCirABC} +\DefaultVal{true}. Moreover the intermediate constructs (mediator lines) can +be drawn by setting the boolean parameter \Lkeyword{CodeFig}. In that case the middle +points are marked on the segemnts using three different marks given by the parameters +\Lkeyword{SegmentSymbolA}, \Lkeyword{SegmentSymbolB} et \Lkeyword{SegmentSymbolC}. +\end{sloppypar} + +\begin{LTXexample}[width=6cm,pos=l] +\begin{pspicture}[showgrid](6,6) +\pstTriangle[PointSymbol=none]% + (4,1){A}(1,3){B}(5,5){C} +\pstCircleABC[CodeFig,CodeFigColor=blue, + linecolor=red,PointSymbol=none]{A}{B}{C}{O} +\end{pspicture} +\end{LTXexample} + + + \subsection{Perpendicular bisector of a segment} + +\begin{BDef} +\Lcs{pstMediatorAB}\OptArgs\Largb{$A$}\Largb{$B$}\Largb{$I$}\Largb{$M$} +\end{BDef} + +\begin{sloppypar} +Possible optional arguments are +\Lkeyword{PointName}, \Lkeyword{PointNameSep}, \Lkeyword{PosAngle}, + \Lkeyword{PointSymbol}, \Lkeyword{PtNameMath}, \Lkeyword{CodeFig}, + \Lkeyword{CodeFigColor}, \Lkeyword{CodeFigStyle}, and \Lkeyword{SegmentSymbol}. +% +The perpendicular bisector of a segment is a line perpendicular to +this segment in its midpoint. The segment is $[AB]$, the midpoint $I$, +and $M$ is a point belonging to the perpendicular bisector line. It is +build by a rotation of $B$ of 90 degrees around $I$. This mean +that the order of $A$ and $B$ is important, it controls the position +of $M$. The command creates the two points $M$ end $I$. The +construction is controlled by the following parameters: +\end{sloppypar} + +\begin{compactitem} +\item \Lkeyword{CodeFig}, \Lkeyword{CodeFigColor} and \Lkeyword{SegmentSymbol} + for marking the right angle ; +\item \Lkeyword{PointSymbol} et \Lkeyword{PointName} for controlling the + drawing of the two points, each of them can be specified + separately with the parameters \Lkeyword{...A} and \Lkeyword{...B} ; +\item parameters controlling the line drawing. +\end{compactitem} + + +\begin{LTXexample}[width=6cm,pos=l] +\begin{pspicture}[showgrid](6,6) +\pstTriangle[PointSymbol=none](3.5,1){A}(1,4){B}(5,4.2){C} +\psset{linecolor=red,CodeFigColor=red,nodesep=-1} +\pstMediatorAB[PointSymbolA=none]{A}{B}{I}{M_I} +\psset{PointSymbol=none,PointNameB=none} +\pstMediatorAB[CodeFig=true]{A}{C}{J}{M_J} +\pstMediatorAB[PosAngleA=45,linecolor=blue] + {C}{B}{K}{M_K} +\end{pspicture} +\end{LTXexample} + + + + \subsection{Bisectors of angles} + + + +\begin{BDef} +\Lcs{pstBissectBAC}\OptArgs\Largb{$B$}\Largb{$A$}\Largb{$C$}\Largb{$N$}\\ +\Lcs{pstOutBissectBAC}\OptArgs\Largb{$B$}\Largb{$A$}\Largb{$C$}\Largb{$N$} +\end{BDef} + +\begin{sloppypar} +Possible optional arguments are +\Lkeyword{PointSymbol}, \Lkeyword{PosAngle}, + \Lkeyword{PointName}, \Lkeyword{PointNameSep}, and \Lkeyword{PtNameMath}. +% +There are two bisectors for a given geometric angle: the inside one and +the outside one; this is why there is two commands. The angle is +specified by three points specified in the trigonometric direction +(anti-clockwise). The result of the commands is the specific line and +a point belonging to this line. This point is built by a rotation of +point $B$. +\end{sloppypar} + + +\begin{LTXexample}[width=6cm,pos=l] +\begin{pspicture}[showgrid](6,6) +\psset{CurveType=polyline,linecolor=red} +\pstGeonode[PosAngle={180,-75,45}]% + (1,4){B}(4,1){A}(5,4){C} +\pstBissectBAC[linecolor=blue]{C}{A}{B}{A'} +\pstOutBissectBAC[linecolor=green,PosAngle=180]% + {C}{A}{B}{A''} +\end{pspicture} +\end{LTXexample} + + +\section{Intersections} + +Points can be defined by intersections. Six intersection types are +managed: + +\begin{compactitem} +\item line-line; +\item line-circle; +\item circle-circle; +\item function-function; +\item function-line; +\item function-circle. +\end{compactitem} + +An intersection can not exist: case of parallel lines. In such a case, +the point(s) are positioned at the origin. In fact, the user has to +manage the existence of these points. + + \subsection{Line-Line} + + + +\begin{BDef} +\Lcs{pstInterLL}\OptArgs\Largb{$A$}\Largb{$B$}\Largb{$C$}\Largb{$D$}\Largb{$M$} +\end{BDef} + +\begin{sloppypar} +Possible optional arguments are +\Lkeyword{PointSymbol}, \Lkeyword{PosAngle}, + \Lkeyword{PointName}, \Lkeyword{PointNameSep}, and \Lkeyword{PtNameMath}. +% +Draw the intersection point between lines $(AB)$ and $(CD)$. +\end{sloppypar} + +\begin{description} +\item[basique] + + +\begin{LTXexample}[width=6cm,pos=l] +\begin{pspicture}[showgrid](-1,-2)(4,3) +\pstGeonode(0,-1){A}(3,2){B}(3,0){C}(1,2){D} +\pstInterLL[PointSymbol=square]{A}{B}{C}{D}{E} +\psset{linecolor=blue, nodesep=-1} +\pstLineAB{A}{B}\pstLineAB{C}{D} +\end{pspicture} +\end{LTXexample} + + +\item[Horthocentre] + +\begin{LTXexample}[width=6cm,pos=l] +\begin{pspicture}[showgrid](-2,-2)(3,3) +\psset{CodeFig,PointSymbol=none} +\pstTriangle[PosAngleA=180](-1,0){A}(3,-1){B}(3,2){C} +\pstProjection[PosAngle=-90]{B}{A}{C} +\pstProjection{B}{C}{A} +\pstProjection[PosAngle=90]{A}{C}{B} +\pstInterLL[PosAngle=135,PointSymbol=square]{A}{A'}{B}{B'}{H} +\end{pspicture} +\end{LTXexample} + +\end{description} + + \subsection{Circle--Line} + +\begin{BDef} +\Lcs{pstInterLC}\OptArgs\Largb{$A$}\Largb{$B$}\Largb{$O$}\Largb{$C$}\Largb{$M_1$}\Largb{$M_2$} +\end{BDef} + +\begin{sloppypar} +Possible optional arguments are +\Lkeyword{PointSymbol}, \Lkeyword{PosAngle}, + \Lkeyword{PointName}, \Lkeyword{PointNameSep}, \Lkeyword{PtNameMath}, + \Lkeyword{PointSymbolA}, \Lkeyword{PosAngleA}, \Lkeyword{PointNameA}, + \Lkeyword{PointSymbolB}, \Lkeyword{PosAngleB}, \Lkeyword{PointNameB}, + \Lkeyword{Radius}, and \Lkeyword{Diameter}. +% +Draw the one or two intersection point(s) between the line $(AB)$ and +the circle of centre $O$ and with radius $OC$. +\end{sloppypar} + +The circle is specified with its center and either a point of its +circumference or with a radius specified with parameter \Lkeyword{radius} +or its diameter specified with parameter \Lkeyword{Diameter}. These two +parameters can be modify by coefficient \Lkeyword{DistCoef}. + + +The position of the wo points is such that the vectors $\vec{AB}$ abd +$\vec{M_1M_2}$ are in the same direction. Thus, if the points +definig the line are switch, then the resulting points will be also +switched. If the intersection is void, then the points are positionned +at the center of the circle. + + +\begin{LTXexample}[width=6cm,pos=l] +\psset{unit=0.8} +\begin{pspicture}[showgrid](-3,-2)(4,4) +\pstGeonode[PosAngle={-135,80,0}](-1,0){B}(3,-1){C}(-.9,.5){O}(0,2){A} +\pstGeonode(-2,3){I} +\pstCircleOA[linecolor=red]{O}{A} +\pstInterLC[PosAngle=-80]{C}{B}{O}{A}{D}{E} +\pstInterLC[PosAngleB=60, Radius=\pstDistAB{O}{D}]{I}{C}{O}{}{F}{G} +\pstInterLC[PosAngleB=180,DistCoef=1.3,Diameter=\pstDistAB{O}{D}] + {I}{B}{O}{}{H}{J} +\pstCircleOA[linecolor=red,DistCoef=1.3,Diameter=\pstDistAB{O}{D}]{O}{} +\psset{nodesep=-1} +\pstLineAB[linecolor=green]{E}{C} +\pstLineAB[linecolor=cyan]{I}{C} +\pstLineAB[linecolor=magenta]{J}{I} +\end{pspicture} +\end{LTXexample} + + + +\subsection{Circle--Circle} + +\begin{BDef} +\Lcs{pstInterCC}\OptArgs\Largb{$O_1$}\Largb{$B$}\Largb{$O_2$}\Largb{$C$}\Largb{$M_1$}\Largb{$M_2$} +\end{BDef} + + +This function is similar to the last one. The boolean parameters +\Lkeyword{CodeFigA} et \Lkeyword{CodeFigB} allow the drawing of the arcs +at the intersection. In order to get a coherence \Lkeyword{CodeFig} allow +the drawing of both arcs. The boolean parameters \Lkeyword{CodeFigAarc} and +\Lkeyword{CodeFigBarc} specified the direction of these optional arcs: +trigonometric (by default) or clockwise. Here is a first example. + +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid](0,-1)(4,3) +\psset{dash=2mm 2mm} +\rput{10}{% + \pstGeonode[PosAngle={0,-90,-90,90}] + (1,-1){O}(2,1){A}(2,0.1){B}(2.5,1){C}} +\pstCircleOA[linecolor=red]{C}{B} +\pstInterCC[PosAngleA=135, CodeFigA=true, CodeFigAarc=false, + CodeFigColor=magenta]{O}{A}{C}{B}{D}{E} +\pstInterCC[PosAngleA=170, CodeFigA=true, + CodeFigAarc=false, + CodeFigColor=green]{B}{E}{C}{B}{F}{G} +\end{pspicture} +\end{LTXexample} + + +And a more complete one, which includes the special circle +specification using radius and diameter. For such specifications it +exists the parameters \Lkeyword{RadiusA}, \Lkeyword{RadiusB}, +\Lkeyword{DiameterA} and \Lkeyword{DiameterB}. + +\begin{LTXexample} +\begin{pspicture}[showgrid](-3,-4)(7,3) +\pstGeonode[PointName={\Omega,O}](3,-1){Omega}(1,-1){O} +\pstGeonode[PointSymbol=square, PosAngle={-90,90}](0,3){A}(2,2){B} +\psset{PointSymbol=o} +\pstCircleOA[linecolor=red, DistCoef=1 3 10 div add, Radius=\pstDistAB{A}{B}]{O}{} +\pstCircleOA[linecolor=Orange, Diameter=\pstDistAB{A}{B}]{O}{} +\pstCircleOA[linecolor=Violet, Radius=\pstDistAB{A}{B}]{Omega}{} +\pstCircleOA[linecolor=Purple, Diameter=\pstDistAB{A}{B}]{Omega}{} +\pstInterCC[DistCoef=1 3 10 div add, RadiusA=\pstDistAB{A}{B}, + DistCoef=none, RadiusB=\pstDistAB{A}{B}]{O}{}{Omega}{}{D}{E} +\pstInterCC[DiameterA=\pstDistAB{A}{B}, RadiusB=\pstDistAB{A}{B}]{O}{}{Omega}{}{F}{G} +\pstInterCC[DistCoef=1 3 10 div add, RadiusA=\pstDistAB{A}{B}, + DistCoef=none, DiameterB=\pstDistAB{A}{B}]{O}{}{Omega}{}{H}{I} +\pstInterCC[DiameterA=\pstDistAB{A}{B}, DiameterB=\pstDistAB{A}{B}]{O}{}{Omega}{}{J}{K} +\end{pspicture} +\end{LTXexample} + + \subsection{Function--function} + + +\begin{BDef} +\Lcs{pstInterFF}\OptArgs\Largb{$f$}\Largb{$g$}\Largb{$x_0$}\Largb{$M$} +\end{BDef} + +This function put a point at the intersection between two curves +defined by a function. $x_0$ is an intersection approximated value of +the abscissa. It is obviously possible to ise this function several +time if more than one intersection is present. Each function is +describerd in \PS in the same way as the description used by +the \Lcs{psplot} macro of \PST. A constant function can be +specified, and then seaching function root is possible. + +The Newton algorithm is used for the research, and the intersection +may not to be found. In such a case the point is positionned at the +origin. On the other hand, the research can be trapped (in a local +extremum near zero). + +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid](-3,-1)(2,4) +\psaxes{->}(0,0)(-2,0)(2,4) +\psset{linewidth=1.5pt,algebraic} +\psplot[linecolor=gray]{-2}{2}{x^2} +\psplot{-2}{2}{2-x/2} +\psset{PointSymbol=o} +\pstInterFF{2-x/2}{x^2}{1}{M_1} +\pstInterFF{2-x/2}{x^2}{-2}{M_0} +\end{pspicture} +\end{LTXexample} + +\subsection{Function--line} + +\begin{BDef} +\Lcs{pstInterFL}\OptArgs\Largb{$f$}\Largb{$A$}\Largb{$B$}\Largb{$x_0$}\Largb{$M$} +\end{BDef} + +Puts a point at the intersection between the function $f$ and the line +$(AB)$. + +\begin{LTXexample}[width=6cm,pos=l] +\begin{pspicture}[showgrid](-3,-1.5)(3,4) +\def\F{x^3/3 - x + 2/3 } +\psaxes{->}(0,0)(-3,-1)(3,4) +\psplot[linewidth=1.5pt,algebraic]{-2.5}{2.5}{\F} +\psset{PointSymbol=*} +\pstGeonode[PosAngle={-45,0}](0,-.2){N}(2.5,1){M} +\pstLineAB[nodesepA=-3cm]{N}{M} +\psset{PointSymbol=o,algebraic} +\pstInterFL{\F}{N}{M}{2}{A} +\pstInterFL[PosAngle=90]{\F}{N}{M}{0}{A'} +\pstInterFL{\F}{N}{M}{-2}{A''} +\end{pspicture} +\end{LTXexample} + + +\vspace{1cm} +\subsection{Function--Circle} + +\begin{BDef} +\Lcs{pstInterFC}\OptArgs\Largb{$f$}\Largb{$O$}\Largb{$A$}\Largb{$x_0$}\Largb{$M$} +\end{BDef} + +Puts a point at the intersection between the function $f$ and the circle +of centre $O$ and radius $OA$. + +\begin{LTXexample}[width=6cm,pos=l] +\begin{pspicture}[showgrid](-3,-4)(3,4) +\def\F{2*cos(x)} +\psset{algebraic} +\pstGeonode(0.3,-1){O}(2,.5){M} +\ncline[linecolor=blue, arrowscale=2]{->}{O}{M} +\psaxes{->}(0,0)(-3,-3)(3,4) +\psplot[linewidth=1.5pt]{-3.14}{3.14}{\F} +\pstCircleOA[PointSymbol=*]{O}{M} +\psset{PointSymbol=o} +\pstInterFC{\F}{O}{M}{1}{N0} +\pstInterFC{\F}{O}{M}{-1}{N1} +\pstInterFC{\F}{O}{M}{-2}{N2} +\pstInterFC{\F}{O}{M}{2}{N3} +\end{pspicture} +\end{LTXexample} + + + +\section{Helper Macros} + +\begin{BDef} +\Lcs{psGetDistanceAB}\OptArgs\coord1\coord2\Largb{}\\ +\Lcs{psGetAngleABC}\OptArgs\coord1\coord2\coord3\Largb{} +\end{BDef} + + +Calculates and prints the values. This is only possible on PostScript level! + + +\begin{pspicture}[showgrid](-1,0)(11,8) +\def\sideC{6} \def\sideA{7} \def\sideB{8} +\psset{PointSymbol=none,linejoin=1,linewidth=0.4pt,PtNameMath=false,labelsep=0.07,MarkAngleRadius=1.1,decimals=1,comma} +\pstGeonode[PosAngle={90,90}](0,0){A}(\sideC;10){B} +\psset{PointName=} +\pstInterCC[RadiusA=\pstDistVal{\sideB},RadiusB=\pstDistVal{\sideA},PosAngle=-90,PointNameA=C]{A}{}{B}{}{C}{C-} +\pstInterCC[RadiusA=\pstDistAB{A}{B},RadiusB=\pstDistAB{B}{C}]{C}{}{A}{}{D-}{D} +\pstInterLC[Radius=\pstDistAB{A}{C}]{C}{D}{C}{}{A'-}{A'} +\pstInterCC[RadiusA=\pstDistAB{A}{B},RadiusB=\pstDistAB{B}{C}]{A'}{}{C}{}{B'}{B'-} +\pstInterLL[PosAngle=90,PointName=default]{B'}{C}{A}{B}{E} +\pspolygon(A)(B)(C) +\pspolygon[fillstyle=solid,fillcolor=magenta,opacity=0.1](C)(E)(B) +% +\psGetAngleABC[ArcColor=blue,AngleValue=true,LabelSep=0.7,arrows=->,decimals=0,PSfont=Palatino-Roman](B)(A)(C){} +\psGetAngleABC[AngleValue=true,ArcColor=red,arrows=->,WedgeOpacity=0.6,WedgeColor=yellow!30,LabelSep=0.5](C)(B)(A){$\beta$} +\psGetAngleABC[LabelSep=0.7,WedgeColor=green,xShift=-6,yShift=-10](A)(C)(B){$\gamma$} +\psGetAngleABC[LabelSep=0.7,AngleArc=false,WedgeColor=green,arrows=->,xShift=-15,yShift=0](C)(E)(B){\color{blue}$\gamma$} +\psGetAngleABC[AngleValue=true,MarkAngleRadius=1.0,LabelSep=0.5,ShowWedge=false,xShift=-5,yShift=7,arrows=->](E)(B)(C){} +% +\pcline[linestyle=none](A)(B)\nbput{\sideC} +\pcline[linestyle=none](C)(B)\naput{\sideA} +\psGetDistanceAB[xShift=-8,yShift=4](B)(E){MW} +\psGetDistanceAB[fontscale=15,xShift=4,decimals=0](A)(C){MAC} +\psGetDistanceAB[xShift=-17,decimals=2](E)(C){MEC} +\end{pspicture} + + + + + +\begin{lstlisting} +\begin{pspicture}(-1,0)(11,8) +\psgrid[gridlabels=0pt,subgriddiv=2,gridwidth=0.4pt,subgridwidth=0.2pt,gridcolor=black!60,subgridcolor=black!40] +\def\sideC{6} \def\sideA{7} \def\sideB{8} +\psset{PointSymbol=none,linejoin=1,linewidth=0.4pt,PtNameMath=false,labelsep=0.07,MarkAngleRadius=1.1,decimals=1,comma} +\pstGeonode[PosAngle={90,90}](0,0){A}(\sideC;10){B} +% \pstGeonode[PosAngle={225,-75}](0,0){A}(\sideC;10){B} +\psset{PointName=} +\pstInterCC[RadiusA=\pstDistVal{\sideB},RadiusB=\pstDistVal{\sideA},PosAngle=-90,PointNameA=C]{A}{}{B}{}{C}{C-} +\pstInterCC[RadiusA=\pstDistAB{A}{B},RadiusB=\pstDistAB{B}{C}]{C}{}{A}{}{D-}{D} +\pstInterLC[Radius=\pstDistAB{A}{C}]{C}{D}{C}{}{A'-}{A'} +\pstInterCC[RadiusA=\pstDistAB{A}{B},RadiusB=\pstDistAB{B}{C}]{A'}{}{C}{}{B'}{B'-} +\pstInterLL[PosAngle=90,PointName=default]{B'}{C}{A}{B}{E} +\pspolygon(A)(B)(C) +\pspolygon[fillstyle=solid,fillcolor=magenta,opacity=0.1](C)(E)(B) +% +\psGetAngleABC[ArcColor=blue,AngleValue=true,LabelSep=0.7,arrows=->,decimals=0,PSfont=Palatino-Roman](B)(A)(C){} +\psGetAngleABC[AngleValue=true,ArcColor=red,arrows=->,WedgeOpacity=0.6,WedgeColor=yellow!30,LabelSep=0.5](C)(B)(A){$\beta$} +\psGetAngleABC[LabelSep=0.7,WedgeColor=green,xShift=-6,yShift=-10](A)(C)(B){$\gamma$} +\psGetAngleABC[LabelSep=0.7,AngleArc=false,WedgeColor=green,arrows=->,xShift=-15,yShift=0](C)(E)(B){\color{blue}$\gamma$} +\psGetAngleABC[AngleValue=true,MarkAngleRadius=1.0,LabelSep=0.5,ShowWedge=false,xShift=-5,yShift=7,arrows=->](E)(B)(C){} +% +\pcline[linestyle=none](A)(B)\nbput{\sideC} +\pcline[linestyle=none](C)(B)\naput{\sideA} +\psGetDistanceAB[xShift=-8,yShift=4](B)(E){MW} +\psGetDistanceAB[fontscale=15,xShift=4,decimals=0](A)(C){MAC} +\psGetDistanceAB[xShift=-17,decimals=2](E)(C){MEC} +\end{pspicture} +\end{lstlisting} + +\clearpage + + + +\addtocontents{toc}{\protect\newpage} + +\part{Examples gallery} +\appendix +\section{Basic geometry} + +\subsection{Drawing of the bissector} + +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid](-1,-1)(4.4,5) +\psset{PointSymbol=none,PointName=none} +\pstGeonode[PosAngle={180,130,-90},PointSymbol={default,none}, + PointName=default](2,0){B}(0,1){O}(1,4){A} +\pstLineAB[nodesepB=-1,linecolor=red]{O}{A} +\pstLineAB[nodesepB=-1,linecolor=red]{O}{B} +\pstInterLC[PosAngleB=-45]{O}{B}{O}{A}{G}{C} +\psset{arcsepA=-1, arcsepB=-1} +\pstArcOAB[linecolor=green,linestyle=dashed]{O}{C}{A} +\pstInterCC[PosAngleA=100]{A}{O}{C}{O}{O'}{OO} +\pstArcOAB[linecolor=blue,linestyle=dashed]{A}{O'}{O'} +\pstArcOAB[linecolor=blue,linestyle=dashed]{C}{O'}{O'} +\pstLineAB[nodesepB=-1,linecolor=cyan]{O}{O'} +\psset{arcsep=1pt,linecolor=magenta,Mark=MarkHash} +\pstMarkAngle{C}{O}{O'}{} +\pstMarkAngle[MarkAngleRadius=.5]{O'}{O}{A}{} +\end{pspicture} +\end{LTXexample} + + +\newpage + +\subsection{Transformation de polygones et courbes} + +Here is an example of the use of \Lkeyword{CurveType} with transformation. + +\begin{LTXexample} +\begin{pspicture}(-5,-5)(10,5) +\pstGeonode{O} +\rput(-3,0){\pstGeonode[CurveType=polygon](1,0){A}(1;51.43){B}(1;102.86){C} + (1;154.29){D}(1;205.71){E}(1;257.14){F}(1;308.57){G}} +\rput(-4,-1){\pstGeonode[CurveType=curve](1,3){M}(4,5){N}(6,2){P}(8,5){Q}} +\pstRotation[linecolor=green, RotAngle=100, CurveType=polygon]{O}{A, B, C, D, E, F, G} +\pstHomO[linecolor=red, HomCoef=.3, CurveType=curve]{O}{M,N,P,Q} +\pstTranslation[linecolor=blue, CurveType=polygon]{C}{O}{A', B', C', D', E', F', G'} +\pstSymO[linecolor=yellow, CurveType=curve]{O}{M',N',P',Q'} +\pstOrtSym[linecolor=magenta, CurveType=polygon]{Q}{F''} + {A', B', C', D', E', F', G'}[A''', B''', C''', D''', E''', F''', G'''] +\end{pspicture} +\end{LTXexample} + +\newpage + + +\subsection{Triangle lines} + + +\begin{LTXexample} +\psset{unit=2} +\begin{pspicture}(-3,-2)(3,3) +\psset{PointSymbol=none} +\pstTriangle[PointSymbol=none](-2,-1){A}(1,2){B}(2,0){C} +{ \psset{linestyle=none, PointNameB=none} + \pstMediatorAB{A}{B}{K}{KP} + \pstMediatorAB[PosAngleA=-40]{C}{A}{J}{JP} + \pstMediatorAB[PosAngleA=75]{B}{C}{I}{IP} +}% fin +\pstInterLL[PointSymbol=square, PosAngle=-170]{I}{IP}{J}{JP}{O} +{% encapsulation de modif parametres + \psset{nodesep=-.8, linecolor=green} + \pstLineAB{O}{I}\pstLineAB{O}{J}\pstLineAB{O}{K} +}% fin +\pstCircleOA[linecolor=red]{O}{A} +% pour que le symbol de O soit sur et non sous les droites +\psdot[dotstyle=square](O) +% les hauteurs et l'orthocentre +\pstProjection{B}{A}{C} +\pstProjection{B}{C}{A} +\pstProjection{A}{C}{B} +\psset{linecolor=blue}\ncline{A}{A'}\ncline{C}{C'}\ncline{B}{B'} +\pstInterLL[PointSymbol=square]{A}{A'}{B}{B'}{H} +% les medianes et le centre de gravite +\psset{linecolor=magenta}\ncline{A}{I}\ncline{C}{K}\ncline{B}{J} +\pstCGravABC[PointSymbol=square, PosAngle=95]{A}{B}{C}{G} +\end{pspicture} +\end{LTXexample} + + +\newpage +\subsection{Euler circle} + + +\begin{LTXexample} +\psset{unit=2} +\begin{pspicture}(-3,-1.5)(3,2.5) +\psset{PointSymbol=none} +\pstTriangle(-2,-1){A}(1,2){B}(2,-1){C} +{% encapsulation de modif parametres + \psset{linestyle=none, PointSymbolB=none, PointNameB=none} + \pstMediatorAB{A}{B}{K}{KP} + \pstMediatorAB{C}{A}{J}{JP} + \pstMediatorAB{B}{C}{I}{IP} +}% fin +\pstInterLL[PointSymbol=square, PosAngle=-170]{I}{IP}{J}{JP}{O} +{% encapsulation de modif parametres + \psset{nodesep=-.8, linecolor=green} + \pstLineAB{O}{I}\pstLineAB{O}{J}\pstLineAB{O}{K} +}% fin +\psdot[dotstyle=square](O) +\pstProjection{B}{A}{C} +\pstProjection{B}{C}{A} +\pstProjection{A}{C}{B} +\psset{linecolor=blue}\ncline{A}{A'}\ncline{C}{C'}\ncline{B}{B'} +\pstInterLL[PointSymbol=square]{A}{A'}{B}{B'}{H} +% le cercle d'Euler (centre au milieu de [OH]) +\pstMiddleAB[PointSymbol=o, PointName=\omega]{O}{H}{omega} +\pstCircleOA[linecolor=Orange, linestyle=dashed, dash=5mm 1mm]{omega}{B'} +\psset{PointName=none} +% il passe par le milieu des segments joignant l'orthocentre et les sommets +\pstMiddleAB{H}{A}{AH}\pstMiddleAB{H}{B}{BH}\pstMiddleAB{H}{C}{CH} +\pstSegmentMark{H}{AH}\pstSegmentMark{AH}{A} +\psset{SegmentSymbol=wedge}\pstSegmentMark{H}{BH}\pstSegmentMark{BH}{B} +\psset{SegmentSymbol=cup}\pstSegmentMark{H}{CH}\pstSegmentMark{CH}{C} +\end{pspicture} +\end{LTXexample} + +\newpage +\subsection{Orthocenter and hyperbola} + +The orthocenter of a triangle whose points are on the branches of the +hyperbola ${\mathscr H} : y=a/x$ belong to this hyperbola. + +\begin{LTXexample} +\psset{unit=0.7} +\begin{pspicture}(-11,-5)(11,7) +\psset{linecolor=blue, linewidth=2\pslinewidth} +\psplot[yMaxValue=6,plotpoints=500]{-10}{-.1}{1 x div} +\psplot[yMaxValue=6,plotpoints=500]{.1}{10}{1 x div} +\psset{%PointSymbol=none, +linewidth=.5\pslinewidth} +\pstTriangle[linecolor=magenta, PosAngleB=-85, PosAngleC=-90](.2,5){A}(1,1){B}(10,.1){C} +\psset{linecolor=magenta,CodeFig=true, CodeFigColor=red} +\pstProjection{B}{A}{C} +\ncline[nodesepA=-1,linestyle=dashed,linecolor=magenta]{C'}{B} +\pstProjection{B}{C}{A} +\ncline[nodesepA=-1,linestyle=dashed,linecolor=magenta]{A'}{B} +\pstProjection{A}{C}{B} +\pstInterLL[PosAngle=135,PointSymbol=square]{A}{A'}{B}{B'}{H} +\psset{linecolor=green, nodesep=-1} +\pstLineAB{A}{H}\pstLineAB{B'}{H}\pstLineAB{C}{H} +\psdot[dotstyle=square](H) +\end{pspicture} +\end{LTXexample} + + +\resetEUCLvalues + + +\newpage +\subsection{17 sides regular polygon} + +Striking picture created by K. F. Gauss. +he also prooved that it is possible to build the regular polygons which +have $2^{2^p}+1$ sides, the following one has 257 sides! + + +\begin{pspicture}(-5.5,-5.5)(5.5,6) + \psset{CodeFig, RightAngleSize=.14, CodeFigColor=red, + CodeFigB=true, linestyle=dashed, dash=2mm 2mm} + \pstGeonode[PosAngle={-90,0}]{O}(5;0){P_1} + \pstCircleOA{O}{P_1} + \pstSymO[PointSymbol=none, PointName=none, CodeFig=false]{O}{P_1}[PP_1] + \ncline[linestyle=solid]{PP_1}{P_1} + \pstRotation[RotAngle=90, PosAngle=90]{O}{P_1}[B] + \pstRightAngle[linestyle=solid]{B}{O}{PP_1}\ncline[linestyle=solid]{O}{B} + \pstHomO[HomCoef=.25]{O}{B}[J] \ncline{J}{P_1} + \pstBissectBAC[PointSymbol=none, PointName=none]{O}{J}{P_1}{PE1} + \pstBissectBAC[PointSymbol=none, PointName=none]{O}{J}{PE1}{PE2} + \pstInterLL[PosAngle=-90]{O}{P_1}{J}{PE2}{E} + \pstRotation[PosAngle=-90, RotAngle=-45, PointSymbol=none, PointName=none]{J}{E}[PF1] + \pstInterLL[PosAngle=-90]{O}{P_1}{J}{PF1}{F} + \pstMiddleAB[PointSymbol=none, PointName=none]{F}{P_1}{MFP1} \pstCircleOA{MFP1}{P_1} + \pstInterLC[%PointSymbolA=none, PointNameA=none + ]{O}{B}{MFP1}{P_1}{H}{K} + \pstCircleOA{E}{K} \pstInterLC{O}{P_1}{E}{K}{N_6}{N_4} + \pstRotation[RotAngle=90,PointSymbol=none, PointName=none]{N_6}{E}[PP_6] + \pstInterLC[PosAngleA=90,PosAngleB=-90, PointNameB=P_{13}]{PP_6}{N_6}{O}{P_1}{P_6}{P_13} + \pstSegmentMark[SegmentSymbol=wedge]{N_6}{P_6} + \pstSegmentMark[SegmentSymbol=wedge]{P_13}{N_6} + \pstRotation[RotAngle=90,PointSymbol=none, PointName=none]{N_4}{E}[PP_4] + \pstInterLC[PosAngleA=90,PosAngleB=-90,PointNameB=P_{15}]{N_4}{PP_4}{O}{P_1}{P_4}{P_15} + \pstSegmentMark[SegmentSymbol=cup]{N_4}{P_4} + \pstSegmentMark[SegmentSymbol=cup]{P_15}{N_4} + \pstRightAngle[linestyle=solid]{P_1}{N_6}{P_6} + \pstRightAngle[linestyle=solid]{P_1}{N_4}{P_4} + \pstBissectBAC[PosAngle=90, linestyle=none]{P_4}{O}{P_6}{P_5} + \pstInterCC[PosAngleB=90, PointSymbolA=none, PointNameA=none]{O}{P_1}{P_4}{P_5}{H}{P_3} + \pstInterCC[PosAngleB=90, PointSymbolA=none, PointNameA=none]{O}{P_1}{P_3}{P_4}{H}{P_2} + \pstInterCC[PosAngleA=90, PointSymbolB=none, PointNameB=none]{O}{P_1}{P_6}{P_5}{P_7}{H} + \pstInterCC[PosAngleA=100, PointSymbolB=none, PointNameB=none]{O}{P_1}{P_7}{P_6}{P_8}{H} + \pstInterCC[PosAngleA=135, PointSymbolB=none, PointNameB=none]{O}{P_1}{P_8}{P_7}{P_9}{H} + \pstOrtSym[PosAngle={-90,-90,-90,-100,-135},PointName={P_{17},P_{16},P_{14},P_{12},P_{11},P_{10}}] + {O}{P_1}{P_2,P_3,P_5,P_7,P_8,P_9}[P_17,P_16,P_14,P_12,P_11,P_10] + \pspolygon[linecolor=green, linestyle=solid, linewidth=2\pslinewidth] + (P_1)(P_2)(P_3)(P_4)(P_5)(P_6)(P_7)(P_8)(P_9)(P_10)(P_11)(P_12)(P_13)(P_14)(P_15)(P_16)(P_17) +\end{pspicture} + + +\begin{lstlisting} +\begin{pspicture}(-5.5,-5.5)(5.5,6) + \psset{CodeFig, RightAngleSize=.14, CodeFigColor=red, + CodeFigB=true, linestyle=dashed, dash=2mm 2mm} + \pstGeonode[PosAngle={-90,0}]{O}(5;0){P_1} + \pstCircleOA{O}{P_1} + \pstSymO[PointSymbol=none, PointName=none, CodeFig=false]{O}{P_1}[PP_1] + \ncline[linestyle=solid]{PP_1}{P_1} + \pstRotation[RotAngle=90, PosAngle=90]{O}{P_1}[B] + \pstRightAngle[linestyle=solid]{B}{O}{PP_1}\ncline[linestyle=solid]{O}{B} + \pstHomO[HomCoef=.25]{O}{B}[J] \ncline{J}{P_1} + \pstBissectBAC[PointSymbol=none, PointName=none]{O}{J}{P_1}{PE1} + \pstBissectBAC[PointSymbol=none, PointName=none]{O}{J}{PE1}{PE2} + \pstInterLL[PosAngle=-90]{O}{P_1}{J}{PE2}{E} + \pstRotation[PosAngle=-90, RotAngle=-45, PointSymbol=none, PointName=none]{J}{E}[PF1] + \pstInterLL[PosAngle=-90]{O}{P_1}{J}{PF1}{F} + \pstMiddleAB[PointSymbol=none, PointName=none]{F}{P_1}{MFP1} \pstCircleOA{MFP1}{P_1} + \pstInterLC[PointSymbolA=none, PointNameA=none]{O}{B}{MFP1}{P_1}{H}{K} + \pstCircleOA{E}{K} \pstInterLC{O}{P_1}{E}{K}{N_6}{N_4} + \pstRotation[RotAngle=90,PointSymbol=none, PointName=none]{N_6}{E}[PP_6] + \pstInterLC[PosAngleA=90,PosAngleB=-90, PointNameB=P_{13}]{PP_6}{N_6}{O}{P_1}{P_6}{P_13} + \pstSegmentMark[SegmentSymbol=wedge]{N_6}{P_6} + \pstSegmentMark[SegmentSymbol=wedge]{P_13}{N_6} + \pstRotation[RotAngle=90,PointSymbol=none, PointName=none]{N_4}{E}[PP_4] + \pstInterLC[PosAngleA=90,PosAngleB=-90,PointNameB=P_{15}]{N_4}{PP_4}{O}{P_1}{P_4}{P_15} + \pstSegmentMark[SegmentSymbol=cup]{N_4}{P_4} + \pstSegmentMark[SegmentSymbol=cup]{P_15}{N_4} + \pstRightAngle[linestyle=solid]{P_1}{N_6}{P_6} + \pstRightAngle[linestyle=solid]{P_1}{N_4}{P_4} + \pstBissectBAC[PosAngle=90, linestyle=none]{P_4}{O}{P_6}{P_5} + \pstInterCC[PosAngleB=90, PointSymbolA=none, PointNameA=none]{O}{P_1}{P_4}{P_5}{H}{P_3} + \pstInterCC[PosAngleB=90, PointSymbolA=none, PointNameA=none]{O}{P_1}{P_3}{P_4}{H}{P_2} + \pstInterCC[PosAngleA=90, PointSymbolB=none, PointNameB=none]{O}{P_1}{P_6}{P_5}{P_7}{H} + \pstInterCC[PosAngleA=100, PointSymbolB=none, PointNameB=none]{O}{P_1}{P_7}{P_6}{P_8}{H} + \pstInterCC[PosAngleA=135, PointSymbolB=none, PointNameB=none]{O}{P_1}{P_8}{P_7}{P_9}{H} + \pstOrtSym[PosAngle={-90,-90,-90,-100,-135},PointName={P_{17},P_{16},P_{14},P_{12},P_{11},P_{10}}] + {O}{P_1}{P_2,P_3,P_5,P_7,P_8,P_9}[P_17,P_16,P_14,P_12,P_11,P_10] + \pspolygon[linecolor=green, linestyle=solid, linewidth=2\pslinewidth] + (P_1)(P_2)(P_3)(P_4)(P_5)(P_6)(P_7)(P_8)(P_9)(P_10)(P_11)(P_12)(P_13)(P_14)(P_15)(P_16)(P_17) +\end{pspicture} +\end{lstlisting} + + +\newpage +\subsection{Circles \& tangents} + +The drawing of the circle tangents which crosses a given point. + +\begin{LTXexample} +\begin{pspicture}(15,10) +\pstGeonode(5, 5){O}(14,2){M} +\pstCircleOA[Radius=\pstDistVal{4}]{O}{} +\pstMiddleAB[PointSymbol=none, PointName=none]{O}{M}{O'} +\pstInterCC[RadiusA=\pstDistVal{4}, DiameterB=\pstDistAB{O}{M}, + CodeFigB=true, CodeFigColor=magenta, PosAngleB=45]{O}{}{O'}{}{A}{B} +\psset{linecolor=red, linewidth=1.3\pslinewidth, nodesep=-2} +\pstLineAB{M}{A}\pstLineAB{M}{B} +\end{pspicture} +\end{LTXexample} + + +\begin{LTXexample} +\begin{pspicture}(-2,0)(13,9) +\pstGeonode(9,3){O}(3,6){O'}\psset{PointSymbol=none, PointName=none} +\pstCircleOA[Radius=\pstDistVal{3}]{O}{}\pstCircleOA[Radius=\pstDistVal{1}]{O'}{} +\pstInterLC[Radius=\pstDistVal{3}]{O}{O'}{O}{}{M}{toto} +\pstInterLC[Radius=\pstDistVal{1}]{O}{O'}{O'}{}{M'}{toto} +\pstRotation[RotAngle=30]{O}{M}[N] +\pstRotation[RotAngle=30]{O'}{M'}[N'] +\pstInterLL[PointSymbol=default, PointName=\Omega]{O}{O'}{N}{N'}{Omega} +\pstMiddleAB{O}{Omega}{I} \pstInterCC{I}{O}{O}{M}{A}{B} +\psset{nodesepA=-1, nodesepB=-3, linecolor=blue, linewidth=1.3\pslinewidth} +\pstLineAB[nodesep=-2]{A}{Omega}\pstLineAB[nodesep=-2]{B}{Omega} +\pstRotation[RotAngle=-150]{O'}{M'}[N''] +\pstInterLL[PointSymbol=default, PointName=\Omega']{O}{O'}{N}{N''}{Omega'} +\pstMiddleAB{O}{Omega'}{J} +\pstInterCC{J}{O}{O}{M}{A'}{B'} +\psset{nodesepA=-1, nodesepB=-3, linecolor=red} +\pstLineAB{A'}{Omega'}\pstLineAB{B'}{Omega'} +\end{pspicture} +\end{LTXexample} + + +\newpage +\subsection{Fermat's point} + +Drawing of Manuel Luque. + +\begin{LTXexample} +\begin{pspicture}(-7,-6)(5,5) +\psset{PointSymbol=none, PointName=none} +\pstTriangle[PosAngleA=-160,PosAngleB=90,PosAngleC=-25](-3,-2){B}(0,3){A}(2,-1){C}% +\psset{RotAngle=-60} +\pstRotation[PosAngle=-90]{B}{C}[A'] +\pstRotation{C}{A}[B'] +\pstRotation[PosAngle=160]{A}{B}[C'] +\pstLineAB{A}{B'} +\pstLineAB{C}{B'} +\pstLineAB{B}{A'} +\pstLineAB{C}{A'} +\pstLineAB{B}{C'} +\pstLineAB{A}{C'} +\pstCircleABC[linecolor=red]{A}{B}{C'}{O_1} +\pstCircleABC[linecolor=blue]{A}{C}{B'}{O_2} +\pstCircleABC[linecolor=Aquamarine]{A'}{C}{B}{O_3} +\pstInterCC[PointSymbolA=none]{O_1}{A}{O_2}{A}{E}{F} +\end{pspicture} +\end{LTXexample} + +\newpage +\subsection{Escribed and inscribed circles of a triangle} + +%% cercles inscrit et exinscrits d'un triangle + + +\begin{pspicture}(-6,-5)(11,15) +\psset{PointSymbol=none} +\pstTriangle[linewidth=2\pslinewidth,linecolor=red](4,1){A}(0,3){B}(5,5){C} +\psset{linecolor=blue} +\pstBissectBAC[PointSymbol=none,PointName=none]{C}{A}{B}{AB} +\pstBissectBAC[PointSymbol=none,PointName=none]{A}{B}{C}{BB} +\pstBissectBAC[PointSymbol=none,PointName=none]{B}{C}{A}{CB} +\pstInterLL{A}{AB}{B}{BB}{I} +\psset{linecolor=magenta, linestyle=dashed} \pstProjection{A}{B}{I}[I_C] +\pstLineAB{I}{I_C}\pstRightAngle[linestyle=solid]{A}{I_C}{I} +\pstProjection{A}{C}{I}[I_B] +\pstLineAB{I}{I_B}\pstRightAngle[linestyle=solid]{C}{I_B}{I} +\pstProjection[PosAngle=80]{C}{B}{I}[I_A] +\pstLineAB{I}{IA}\pstRightAngle[linestyle=solid]{B}{I_A}{I} +\pstCircleOA[linecolor=yellow, linestyle=solid]{I}{I_A} +\psset{linecolor=magenta, linestyle=none} +\pstOutBissectBAC[PointSymbol=none,PointName=none]{C}{A}{B}{AOB} +\pstOutBissectBAC[PointSymbol=none,PointName=none]{A}{B}{C}{BOB} +\pstOutBissectBAC[PointSymbol=none,PointName=none]{B}{C}{A}{COB} +\pstInterLL[PosAngle=-90]{A}{AOB}{B}{BOB}{I_1} \pstInterLL{A}{AOB}{C}{COB}{I_2} +\pstInterLL[PosAngle=90]{C}{COB}{B}{BOB}{I_3} \psset{linecolor=magenta, linestyle=dashed} +\pstProjection[PointName=I_{1C}]{A}{B}{I_1}[I1C] +\pstLineAB{I_1}{I1C}\pstRightAngle[linestyle=solid]{I_1}{I1C}{A} +\pstProjection[PointName=I_{1B}]{A}{C}{I_1}[I1B] +\pstLineAB{I_1}{I1B}\pstRightAngle[linestyle=solid]{A}{I1B}{I_1} +\pstProjection[PointName=I_{1A}]{C}{B}{I_1}[I1A] +\pstLineAB{I_1}{I1A}\pstRightAngle[linestyle=solid]{I_1}{I1A}{C} +\pstProjection[PointName=I_{2B}]{A}{C}{I_2}[I2B] +\pstLineAB{I_2}{I2B}\pstRightAngle[linestyle=solid]{A}{I2B}{I_2} +\pstProjection[PointName=I_{2C}]{A}{B}{I_2}[I2C] +\pstLineAB{I_2}{I2C}\pstRightAngle[linestyle=solid]{I_2}{I2C}{A} +\pstProjection[PointName=I_{2A}]{B}{C}{I_2}[I2A] +\pstLineAB{I_2}{I2A}\pstRightAngle[linestyle=solid]{C}{I2A}{I_2} +\pstProjection[PointName=I_{3A}]{C}{B}{I_3}[I3A] +\pstLineAB{I_3}{I3A}\pstRightAngle[linestyle=solid]{C}{I3A}{I_3} +\pstProjection[PointName=I_{3C}]{A}{B}{I_3}[I3C] +\pstLineAB{I_3}{I3C}\pstRightAngle[linestyle=solid]{A}{I3C}{I_3} +\pstProjection[PointName=I_{3B}]{C}{A}{I_3}[I3B] +\pstLineAB{I_3}{I3B}\pstRightAngle[linestyle=solid]{I_3}{I3B}{A} +\psset{linecolor=black!40, linestyle=dashed} +\pstCircleOA{I_1}{I1C} \pstCircleOA{I_2}{I2B} \pstCircleOA{I_3}{I3A} +\psset{linecolor=red, linestyle=solid, nodesepA=-1, nodesepB=-1} +\pstLineAB{I1B}{I3B}\pstLineAB{I1A}{I2A}\pstLineAB{I2C}{I3C} +\end{pspicture} + + +\begin{lstlisting} +\begin{pspicture}(-6,-5)(11,15) +\psset{PointSymbol=none} +\pstTriangle[linewidth=2\pslinewidth,linecolor=red](4,1){A}(0,3){B}(5,5){C} +\psset{linecolor=blue} +\pstBissectBAC[PointSymbol=none,PointName=none]{C}{A}{B}{AB} +\pstBissectBAC[PointSymbol=none,PointName=none]{A}{B}{C}{BB} +\pstBissectBAC[PointSymbol=none,PointName=none]{B}{C}{A}{CB} +\pstInterLL{A}{AB}{B}{BB}{I} +\psset{linecolor=magenta, linestyle=dashed} +\pstProjection{A}{B}{I}[I_C] +\pstLineAB{I}{I_C}\pstRightAngle[linestyle=solid]{A}{I_C}{I} +\pstProjection{A}{C}{I}[I_B] +\pstLineAB{I}{I_B}\pstRightAngle[linestyle=solid]{C}{I_B}{I} +\pstProjection[PosAngle=80]{C}{B}{I}[I_A] +\pstLineAB{I}{IA}\pstRightAngle[linestyle=solid]{B}{I_A}{I} +\pstCircleOA[linecolor=yellow, linestyle=solid]{I}{I_A} +\psset{linecolor=magenta, linestyle=none} +\pstOutBissectBAC[PointSymbol=none,PointName=none]{C}{A}{B}{AOB} +\pstOutBissectBAC[PointSymbol=none,PointName=none]{A}{B}{C}{BOB} +\pstOutBissectBAC[PointSymbol=none,PointName=none]{B}{C}{A}{COB} +\pstInterLL[PosAngle=-90]{A}{AOB}{B}{BOB}{I_1} +\pstInterLL{A}{AOB}{C}{COB}{I_2} +\pstInterLL[PosAngle=90]{C}{COB}{B}{BOB}{I_3} +\psset{linecolor=magenta, linestyle=dashed} +\pstProjection[PointName=I_{1C}]{A}{B}{I_1}[I1C] +\pstLineAB{I_1}{I1C}\pstRightAngle[linestyle=solid]{I_1}{I1C}{A} +\pstProjection[PointName=I_{1B}]{A}{C}{I_1}[I1B] +\pstLineAB{I_1}{I1B}\pstRightAngle[linestyle=solid]{A}{I1B}{I_1} +\pstProjection[PointName=I_{1A}]{C}{B}{I_1}[I1A] +\pstLineAB{I_1}{I1A}\pstRightAngle[linestyle=solid]{I_1}{I1A}{C} +\pstProjection[PointName=I_{2B}]{A}{C}{I_2}[I2B] +\pstLineAB{I_2}{I2B}\pstRightAngle[linestyle=solid]{A}{I2B}{I_2} +\pstProjection[PointName=I_{2C}]{A}{B}{I_2}[I2C] +\pstLineAB{I_2}{I2C}\pstRightAngle[linestyle=solid]{I_2}{I2C}{A} +\pstProjection[PointName=I_{2A}]{B}{C}{I_2}[I2A] +\pstLineAB{I_2}{I2A}\pstRightAngle[linestyle=solid]{C}{I2A}{I_2} +\pstProjection[PointName=I_{3A}]{C}{B}{I_3}[I3A] +\pstLineAB{I_3}{I3A}\pstRightAngle[linestyle=solid]{C}{I3A}{I_3} +\pstProjection[PointName=I_{3C}]{A}{B}{I_3}[I3C] +\pstLineAB{I_3}{I3C}\pstRightAngle[linestyle=solid]{A}{I3C}{I_3} +\pstProjection[PointName=I_{3B}]{C}{A}{I_3}[I3B] +\pstLineAB{I_3}{I3B}\pstRightAngle[linestyle=solid]{I_3}{I3B}{A} +\psset{linecolor=yellow, linestyle=solid} +\pstCircleOA{I_1}{I1C} \pstCircleOA{I_2}{I2B} \pstCircleOA{I_3}{I3A} +\psset{linecolor=red, linestyle=solid, nodesepA=-1, nodesepB=-1} +\pstLineAB{I1B}{I3B}\pstLineAB{I1A}{I2A}\pstLineAB{I2C}{I3C} +\end{pspicture} +\end{lstlisting} + + + +\newpage +\section{Some locus points} + +\subsection{Parabola} + +The parabola is the set of points which are at the same distance +between a point and a line. + + +\begin{LTXexample} +\def\NbPt{11} +\begin{pspicture}(-0.5,0)(11,10) +\psset{linewidth=1.2\pslinewidth}\renewcommand{\NbPt}{11} +\pstGeonode[PosAngle={0,-90}](5,4){O}(1,2){A}(9,1.5){B} +\newcommand\Parabole[1][100]{% + \pstLineAB[nodesep=-.9, linecolor=green]{A}{B} + \psset{RotAngle=90, PointSymbol=none, PointName=none} + \multido{\n=1+1}{\NbPt}{% + \pstHomO[HomCoef=\n\space \NbPt\space 1 add div]{A}{B}[M\n] + \pstMediatorAB[linestyle=none]{M\n}{O}{M\n_I}{M\n_IP} + \pstRotation{M\n}{A}[M\n_P] + \pstInterLL[PointSymbol=square, PointName=none]{M\n_I}{M\n_IP}{M\n}{M\n_P}{P_\n} + \ifnum\n=#1 \bgroup + \pstRightAngle{A}{M\n}{M\n_P} + \psset{linewidth=.5\pslinewidth, nodesep=-1, linecolor=blue} + \pstLineAB{M\n_I}{P_\n}\pstLineAB{M\n}{P_\n} + \pstRightAngle{P_\n}{M\n_I}{M\n} + \psset{linecolor=red}\pstSegmentMark{M\n}{M\n_I}\pstSegmentMark{M\n_I}{O} + \egroup \fi}} +\Parabole[2]\pstGenericCurve[linecolor=magenta]{P_}{1}{\NbPt} +\pstGeonode[PointSymbol=*, PosAngle=-90](10,3.5){B} +\Parabole\pstGenericCurve[linecolor=magenta,linestyle=dashed]{P_}{1}{\NbPt} +\end{pspicture} +\end{LTXexample} + +\newpage +\subsection{Hyperbola} + +The hyperbola is the set of points whose difference between their +distance of two points (the focus) is constant. + +\iffalse +\begin{verbatim} +%% QQ RAPPELS : a=\Sommet, c=\PosFoyer, +%% b^2=c^2-a^2, e=c/a +%% pour une hyperbole -> e>1, donc c>a, +%% ici on choisi a=\sqrt{2}, c=2, e=\sqrt{2} +%% M est sur H <=> |MF-MF'|=2a +\end{verbatim} +\fi + +\begin{LTXexample} +\begin{pspicture}[showgrid](-4,-4)(4,4) +\newcommand\Sommet{1.4142135623730951 } \newcounter{i} \setcounter{i}{1} +\newcommand\PosFoyer{2 } \newcommand\HypAngle{0} +\newcounter{CoefDiv}\setcounter{CoefDiv}{20} +\newcounter{Inc}\setcounter{Inc}{2} \newcounter{n}\setcounter{n}{2} +\newcommand\Ri{ \PosFoyer \Sommet sub \arabic{i}\space\arabic{CoefDiv}\space div add } +\newcommand\Rii{\Ri \Sommet 2 mul add } +\pstGeonode[PosAngle=90]{O}(\PosFoyer;\HypAngle){F} +\pstSymO[PosAngle=180]{O}{F}\pstLineAB{F}{F'} \pstCircleOA{O}{F} +\pstGeonode[PosAngle=-135](\Sommet;\HypAngle){S} +\pstGeonode[PosAngle=-45](-\Sommet;\HypAngle){S'} +\pstRotation[RotAngle=90, PointSymbol=none]{S}{O}[B] +\pstInterLC[PosAngleA=90, PosAngleB=-90]{S}{B}{O}{F}{A_1}{A_2} +\pstLineAB[nodesepA=-3,nodesepB=-5]{A_1}{O}\pstLineAB[nodesepA=-3,nodesepB=-5]{A_2}{O} +\pstMarkAngle[LabelSep=.8,MarkAngleRadius=.7,arrows=->,LabelSep=1.1]{F}{O}{A_1}{$\Psi$} +\ncline[linecolor=red]{A_1}{A_2} \pstRightAngle[RightAngleSize=.15]{A_1}{S}{O} +\psset{PointName=none} +\whiledo{\value{n}<8}{% + \psset{RadiusA=\pstDistVal{\Ri},RadiusB=\pstDistVal{\Rii},PointSymbol=none} + \pstInterCC{F}{}{F'}{}{M\arabic{n}}{P\arabic{n}} + \pstInterCC{F'}{}{F}{}{M'\arabic{n}}{P'\arabic{n}} + \stepcounter{n}\addtocounter{i}{\value{Inc}} + \addtocounter{Inc}{\value{Inc}}}%% fin de whiledo +\psset{linecolor=blue} +\pstGenericCurve[GenCurvFirst=S]{M}{2}{7} +\pstGenericCurve[GenCurvFirst=S]{P}{2}{7} +\pstGenericCurve[GenCurvFirst=S']{M'}{2}{7} +\pstGenericCurve[GenCurvFirst=S']{P'}{2}{7} +\end{pspicture} +\end{LTXexample} + + + + \subsection{Cycloid} + +The wheel rolls from $M$ to $A$. The circle points are on a +cycloid. + + +\begin{LTXexample} +\begin{pspicture}[showgrid](-2,-1)(13,3) +\providecommand\NbPt{11} +\psset{linewidth=1.2\pslinewidth} +\pstGeonode[PointSymbol={*,none}, PointName={default,none}, PosAngle=180]{M}(0,1){O} +\pstGeonode(12.5663706144,0){A} +\pstTranslation[PointSymbol=none, PointName=none]{M}{A}{O}[B] +\multido{\nA=1+1}{\NbPt}{% + \pstHomO[HomCoef=\nA\space\NbPt\space 1 add div,PointSymbol=none,PointName=none]{O}{B}[O\nA] + \pstProjection[PointSymbol=none, PointName=none]{M}{A}{O\nA}[P\nA] + \pstCurvAbsNode[PointSymbol=square, PointName=none,CurvAbsNeg=true]% + {O\nA}{P\nA}{M\nA}{\pstDistAB{O}{O\nA}} + \ifnum\nA=2 \bgroup + \pstCircleOA{O\nA}{M\nA} + \psset{linecolor=magenta, linewidth=1.5\pslinewidth} + \pstArcnOAB{O\nA}{P\nA}{M\nA} + \ncline{O\nA}{M\nA}\ncline{P\nA}{M} + \egroup \fi + }% fin du multido +\psset{linecolor=blue, linewidth=1.5\pslinewidth} +\pstGenericCurve[GenCurvFirst=M]{M}{1}{6} \pstGenericCurve[GenCurvLast=A]{M}{6}{\NbPt} +\end{pspicture} +\end{LTXexample} + +\newpage +\subsection{Hypocycloids (Astroid and Deltoid)} + +A wheel rolls inside a circle, and depending of the radius ratio, it +is an astroid, a deltoid and in the general case hypo-cycloids. + + + +\begin{LTXexample} +\newcommand\HypoCyclo[4][100]{% + \def\R{#2}\def\petitR{#3}\def\NbPt{#4} + \def\Anglen{\n\space 360 \NbPt\space 1 add div mul} + \psset{PointSymbol=none,PointName=none} + \pstGeonode[PointSymbol={*,none},PointName={default,none}, PosAngle=0]{O}(\R;0){P} + \pstCircleOA{O}{P} + \pstHomO[HomCoef=\petitR\space\R\space div]{P}{O}[M] + \multido{\n=1+1}{\NbPt}{% + \pstRotation[RotAngle=\Anglen]{O}{M}[M\n] + \rput(M\n){\pstGeonode(\petitR;0){Q}} + \pstRotation[RotAngle=\Anglen]{M\n}{Q}[N] + \pstRotation[RotAngle=\n\space -360 \NbPt\space 1 add div + mul \R\space\petitR\space div mul,PointSymbol=*,PointName=none]{M\n}{N}[N\n] + \ifnum\n=#1 + \pstCircleOA{M\n}{N\n}\ncline{M\n}{N\n}% + {\psset{linecolor=red, linewidth=2\pslinewidth} + \pstArcOAB{M\n}{N\n}{N}\pstArcOAB{O}{P}{N}} + \fi}}%fin multido-newcommand +\begin{pspicture}[showgrid](-3.5,-3.4)(3.5,4) +\HypoCyclo[3]{3}{1}{17} +\psset{linecolor=blue,linewidth=1.5\pslinewidth} +\pstGenericCurve[GenCurvFirst=P]{N}{1}{6} +\pstGenericCurve{N}{6}{12} +\pstGenericCurve[GenCurvLast=P]{N}{12}{17} +\end{pspicture} +\end{LTXexample} + + + +\begin{LTXexample} +\newcommand\HypoCyclo[4][100]{% + \def\R{#2}\def\petitR{#3}\def\NbPt{#4} + \def\Anglen{\n\space 360 \NbPt\space 1 add div mul} + \psset{PointSymbol=none,PointName=none} + \pstGeonode[PointSymbol={*,none},PointName={default,none}, PosAngle=0]{O}(\R;0){P} + \pstCircleOA{O}{P} + \pstHomO[HomCoef=\petitR\space\R\space div]{P}{O}[M] + \multido{\n=1+1}{\NbPt}{% + \pstRotation[RotAngle=\Anglen]{O}{M}[M\n] + \rput(M\n){\pstGeonode(\petitR;0){Q}} + \pstRotation[RotAngle=\Anglen]{M\n}{Q}[N] + \pstRotation[RotAngle=\n\space -360 \NbPt\space 1 add div + mul \R\space\petitR\space div mul, PointSymbol=*, PointName=none]{M\n}{N}[N\n] + \ifnum\n=#1 + \pstCircleOA{M\n}{N\n}\ncline{M\n}{N\n}% + {\psset{linecolor=red, linewidth=2\pslinewidth} + \pstArcOAB{M\n}{N\n}{N}\pstArcOAB{O}{P}{N}} + \fi}}%fin multido-newcommand +\begin{pspicture}(-4.5,-4)(4.5,4.5) +\HypoCyclo[4]{4}{1}{27} +\psset{linecolor=blue, linewidth=1.5\pslinewidth} +\pstGenericCurve[GenCurvFirst=P]{N}{1}{7} +\pstGenericCurve{N}{7}{14}\pstGenericCurve{N}{14}{21} +\pstGenericCurve[GenCurvLast=P]{N}{21}{27} +\end{pspicture} +\end{LTXexample} + + +\newpage + \section{Lines and circles envelope} + +\subsection{Conics} + +Let's consider a circle and a point $A$ not on the circle. The +set of all the mediator lines of segments defined by $A$ and the +circle points, create two conics depending of the position of $A$: + +\begin{compactitem} +\item inside the circle: an hyperbola; +\item outside the circle: an ellipse. +\end{compactitem} + +(figure of O. Reboux). + +\begin{LTXexample} +\begin{pspicture}(-6,-6)(6,6) +\psset{linewidth=0.4\pslinewidth,PointSymbol=none, PointName=none} +\pstGeonode[PosAngle=-90, PointSymbol={none,*,none}, PointName={none,default,none}] + {O}(4;132){A}(5,0){O'} +\pstCircleOA{O}{O'} +\multido{\n=5+5}{72}{% + \pstGeonode(5;\n){M_\n} + \pstMediatorAB[nodesep=-15,linecolor=magenta] + {A}{M_\n}{I}{J}}% fin multido +\end{pspicture} +\end{LTXexample} + +\newpage +\subsection{Cardioid} + +The cardioid is defined by the circles centered on a circle and +crossing a given point. + +\begin{LTXexample} +\begin{pspicture}(-6,-6)(3,5) +\psset{linewidth=0.4\pslinewidth,PointSymbol=x,nodesep=0,linecolor=magenta} +\pstGeonode[PointName=none]{O}(2,0){O'} +\pstCircleOA[linecolor=black]{O}{O'} +\multido{\n=5+5}{72}{% + \pstGeonode[PointSymbol=none, PointName=none](2;\n){M_\n} + \pstCircleOA{M_\n}{O'}} + \end{pspicture} +\end{LTXexample} + + +\newpage + \section{Homotethy and fractals} + +\begin{LTXexample}[width=6cm.pos=l] +\begin{pspicture}(-2.8,-3)(2.8,3) +\pstGeonode[PosAngle={0,90}](2,2){A_0}(-2,2){B_0}% +\psset{RotAngle=90} +\pstRotation[PosAngle=270]{A_0}{B_0}[D_0] +\pstRotation[PosAngle=180]{D_0}{A_0}[C_0] +\pspolygon(A_0)(B_0)(C_0)(D_0)% +\psset{PointSymbol=none, PointName=none, HomCoef=.2} +\multido{\n=1+1,\i=0+1}{20}{% + \pstHomO[PosAngle=0]{B_\i}{A_\i}[A_\n] + \pstHomO[PosAngle=90]{C_\i}{B_\i}[B_\n] + \pstHomO[PosAngle=180]{D_\i}{C_\i}[C_\n] + \pstHomO[PosAngle=270]{A_\i}{D_\i}[D_\n] + \pspolygon(A_\n)(B_\n)(C_\n)(D_\n)}% fin multido +\end{pspicture} +\end{LTXexample} + +\newpage +\section{hyperbolic geometry: a triangle and its altitudes} + +\begin{LTXexample} +\begin{pspicture}(-5,-5)(5,5) +\psclip{\pscircle(0,0){4}} + \pstGeonode(1, 2){M}\pstGeonode(-2,2){N}\pstGeonode(0,-2){P} + \psset{DrawCirABC=false, PointSymbol=none, PointName=none}% + \pstGeonode(0,0){O}\pstGeonode(4,0){A}\pstCircleOA{O}{A} + \pstHomO[HomCoef=\pstDistAB{O}{A} 2 mul \pstDistAB{O}{M} sub + \pstDistAB{O}{M} div]{O}{M}[M']% + \pstHomO[HomCoef=\pstDistAB{O}{A} 2 mul \pstDistAB{O}{P} sub + \pstDistAB{O}{P} div]{O}{P}[P']% + \pstHomO[HomCoef=\pstDistAB{O}{A} 2 mul \pstDistAB{O}{N} sub + \pstDistAB{O}{N} div]{O}{N}[N']% + \psset{linecolor=green, linewidth=1.5pt}% + \pstCircleABC{M}{N}{M'}{OmegaMN}\pstArcOAB{OmegaMN}{N}{M} + \pstCircleABC{M}{P}{M'}{OmegaMP}\pstArcOAB{OmegaMP}{M}{P} + \pstCircleABC{N}{P}{P'}{OmegaNP}\pstArcOAB{OmegaNP}{P}{N} + \psset{linecolor=blue} + \pstHomO[HomCoef=\pstDistAB{OmegaNP}{N} 2 mul \pstDistAB{OmegaNP}{M} sub %% M + \pstDistAB{OmegaNP}{M} div]{OmegaNP}{M}[MH'] + \pstCircleABC{M}{M'}{MH'}{OmegaMH}\pstArcOAB{OmegaMH}{MH'}{M} %% N + \pstHomO[HomCoef=\pstDistAB{OmegaMP}{M} 2 mul \pstDistAB{OmegaMP}{N} sub + \pstDistAB{OmegaMP}{N} div]{OmegaMP}{N}[NH'] + \pstCircleABC{N}{N'}{NH'}{OmegaNH}\pstArcOAB{OmegaNH}{N}{NH'} %% P + \pstHomO[HomCoef=\pstDistAB{OmegaMN}{M} 2 mul \pstDistAB{OmegaMN}{P} sub + \pstDistAB{OmegaMN}{P} div]{OmegaMN}{P}[PH'] + \pstCircleABC{P}{P'}{PH'}{OmegaPH}\pstArcOAB{OmegaPH}{P}{PH'} +\endpsclip +\end{pspicture} +\end{LTXexample} + + + + +\clearpage +\section{List of all optional arguments for \texttt{pst-eucl}} + +\xkvview{family=pst-eucl,columns={key,type,default}} + +\nocite{*} +\bgroup +\RaggedRight +\bibliographystyle{plain} +\bibliography{pst-eucl-doc} +\egroup + +\printindex + + +\end{document} + + diff --git a/Master/texmf-dist/tex/generic/pst-eucl/pst-eucl.tex b/Master/texmf-dist/tex/generic/pst-eucl/pst-eucl.tex index 681f993be7d..e93085ddcb5 100644 --- a/Master/texmf-dist/tex/generic/pst-eucl/pst-eucl.tex +++ b/Master/texmf-dist/tex/generic/pst-eucl/pst-eucl.tex @@ -12,16 +12,17 @@ % Require PSTricks and pst-node packages \ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi \ifx\PSTnodesLoaded\endinput\else\input pst-node.tex\fi +\ifx\PSTtoolsLoaded\endinput\else\input pst-tools.tex\fi \ifx\PSTXKeyLoaded\endinput\else \input pst-xkey\fi \ifx\MultidoLoaded\endinput \else\input multido.tex \fi \csname PSTEuclideLoaded\endcsname \let\PSTEuclideLoaded\endinput -\def\fileversion{1.50} -\def\filedate{2014/04/05} +\def\fileversion{1.51} +\def\filedate{2014/05/17} %% 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{`PST-Euclide v\fileversion, \filedate\space (dr,hv)}% \message{ This version uses the pst-xkey package for managing parameters}% \message{ Please read the doc, some macros have a new syntax}% \message{ use option old for upward compatibility}% @@ -33,26 +34,27 @@ % Definition of the parameters % ---------------------------- % symbol used for the point -\define@key[psset]{pst-eucl}{PointSymbol}{\edef\psk@PointSymbol{#1}}% -\define@key[psset]{pst-eucl}{PointSymbolA}{\edef\psk@PointSymbolA{#1}}% -\define@key[psset]{pst-eucl}{PointSymbolB}{\edef\psk@PointSymbolB{#1}}% -\define@key[psset]{pst-eucl}{PointSymbolC}{\edef\psk@PointSymbolC{#1}}% +\define@key[psset]{pst-eucl}{PointSymbol}[default]{\def\psk@PointSymbol{#1}}% +\define@key[psset]{pst-eucl}{PointSymbolA}[undef]{\edef\psk@PointSymbolA{#1}}% +\define@key[psset]{pst-eucl}{PointSymbolB}[undef]{\edef\psk@PointSymbolB{#1}}% +\define@key[psset]{pst-eucl}{PointSymbolC}[undef]{\edef\psk@PointSymbolC{#1}}% % name used for the point -\define@key[psset]{pst-eucl}{PointName}{\def\psk@PointName{#1}}% -\define@key[psset]{pst-eucl}{PointNameA}{\def\psk@PointNameA{#1}}% -\define@key[psset]{pst-eucl}{PointNameB}{\def\psk@PointNameB{#1}}% -\define@key[psset]{pst-eucl}{PointNameC}{\def\psk@PointNameC{#1}}% + +\define@key[psset]{pst-eucl}{PointName}[default]{\def\psk@PointName{#1}}% +\define@key[psset]{pst-eucl}{PointNameA}[undef]{\edef\psk@PointNameA{#1}}% +\define@key[psset]{pst-eucl}{PointNameB}[undef]{\edef\psk@PointNameB{#1}}% +\define@key[psset]{pst-eucl}{PointNameC}[undef]{\edef\psk@PointNameC{#1}}% % use math mode in point name \newif\ifPst@PtNameMath% \define@key[psset]{pst-eucl}{PtNameMath}[false]{\@nameuse{Pst@PtNameMath#1}}% % symbol used for marking equal length segment -\define@key[psset]{pst-eucl}{SegmentSymbol}{\edef\psk@SegmentSymbol{#1}}% -\define@key[psset]{pst-eucl}{SegmentSymbolA}{\edef\psk@SegmentSymbolA{#1}}% -\define@key[psset]{pst-eucl}{SegmentSymbolB}{\edef\psk@SegmentSymbolB{#1}}% -\define@key[psset]{pst-eucl}{SegmentSymbolC}{\edef\psk@SegmentSymbolC{#1}}% -\define@key[psset]{pst-eucl}{Mark}{\def\psk@Mark{#1}}% -\define@key[psset]{pst-eucl}{mark}{\def\psk@mark{Angle#1}}% for angles -\define@key[psset]{pst-eucl}{MarkAngle}{\def\psk@MarkAngle{#1}}% +\define@key[psset]{pst-eucl}{SegmentSymbol}[MarkHashh]{\edef\psk@SegmentSymbol{#1}}% +\define@key[psset]{pst-eucl}{SegmentSymbolA}[MarkHashh]{\edef\psk@SegmentSymbolA{#1}}% +\define@key[psset]{pst-eucl}{SegmentSymbolB}[MarkHashh]{\edef\psk@SegmentSymbolB{#1}}% +\define@key[psset]{pst-eucl}{SegmentSymbolC}[MarkHashh]{\edef\psk@SegmentSymbolC{#1}}% +\define@key[psset]{pst-eucl}{Mark}[undef]{\edef\psk@Mark{#1}}% +\define@key[psset]{pst-eucl}{mark}[undef]{\edef\psk@mark{Angle#1}}% for angles +\define@key[psset]{pst-eucl}{MarkAngle}[undef]{\edef\psk@MarkAngle{#1}}% \newdimen\psMarkHashLength \newdimen\psMarkHashSep \define@key[psset]{pst-eucl}{MarkHashLength}[1.25mm]{\pssetlength\psMarkHashLength{#1}} @@ -63,29 +65,28 @@ \define@key[psset]{pst-eucl}{PointNameSep}{\edef\psk@PointNameSep{#1}}% % position angle for positionning a point name \define@key[psset]{pst-eucl}{PosAngle}{\edef\psk@PosAngle{#1}}% -\define@key[psset]{pst-eucl}{PosAngleA}{\edef\psk@PosAngleA{#1}}% -\define@key[psset]{pst-eucl}{PosAngleB}{\edef\psk@PosAngleB{#1}}% -\define@key[psset]{pst-eucl}{PosAngleC}{\edef\psk@PosAngleC{#1}}% +\define@key[psset]{pst-eucl}{PosAngleA}[undef]{\edef\psk@PosAngleA{#1}}% +\define@key[psset]{pst-eucl}{PosAngleB}[undef]{\edef\psk@PosAngleB{#1}}% +\define@key[psset]{pst-eucl}{PosAngleC}[undef]{\edef\psk@PosAngleC{#1}}% % dimension of the right angle mark -\define@key[psset]{pst-eucl}{RightAngleSize}{\edef\psk@RightAngleSize{#1}}% -\define@key[psset]{pst-eucl}{RightAngleType}{\edef\psk@RightAngleType{#1}}% +\define@key[psset]{pst-eucl}{RightAngleSize}[4]{\edef\psk@RightAngleSize{#1}}% +\define@key[psset]{pst-eucl}{RightAngleType}[default]{\edef\psk@RightAngleType{#1}}% % radius of an angle mark -\define@key[psset]{pst-eucl}{MarkAngleRadius}{\edef\psk@MarkAngleRadius{#1}}% +\define@key[psset]{pst-eucl}{MarkAngleRadius}[0.4]{\edef\psk@MarkAngleRadius{#1}}% % angular offset position of the label for marking an angle -\define@key[psset]{pst-eucl}{LabelAngleOffset}{\edef\psk@LabelAngleOffset{#1}}% +\define@key[psset]{pst-eucl}{LabelAngleOffset}[0]{\edef\psk@LabelAngleOffset{#1}}% % position radius of the label for marking an angle -\define@key[psset]{pst-eucl}{LabelSep}{\edef\psk@LabelSep{#1}}% +\define@key[psset]{pst-eucl}{LabelSep}[1]{\edef\psk@LabelSep{#1}}% % ref point of the label -\define@key[psset]{pst-eucl}{LabelRefPt}{\edef\psk@LabelRefPt{#1}}% +\define@key[psset]{pst-eucl}{LabelRefPt}[c]{\edef\psk@LabelRefPt{#1}}% % curve type for point list -\define@key[psset]{pst-eucl}{CurveType}{\edef\psk@CurveType{#1}}% +\define@key[psset]{pst-eucl}{CurveType}[none]{\edef\psk@CurveType{#1}}% % coefficient of homothetie -\define@key[psset]{pst-eucl}{HomCoef}{\edef\psk@HomCoef{#1}}% +\define@key[psset]{pst-eucl}{HomCoef}[0.5]{\edef\psk@HomCoef{#1}}% % angle of rotation -\define@key[psset]{pst-eucl}{RotAngle}{\edef\psk@RotAngle{#1}}% +\define@key[psset]{pst-eucl}{RotAngle}[60]{\edef\psk@RotAngle{#1}}% % label for coding the transfortion -\define@key[psset]{pst-eucl}{TransformLabel}{\edef\psk@TransformLabel{#1}}% -\define@key[psset]{pst-eucl}{CurveType}{\edef\psk@CurveType{#1}}% +\define@key[psset]{pst-eucl}{TransformLabel}[none]{\edef\psk@TransformLabel{#1}}% % private parameter \newif\ifPst@CentralSym \define@key[psset]{pst-eucl}{Central@Sym}[false]{\@nameuse{Pst@CentralSym#1}}% @@ -93,38 +94,41 @@ \newif\ifPst@DrawCirABC \define@key[psset]{pst-eucl}{DrawCirABC}[true]{\@nameuse{Pst@DrawCirABC#1}}% % for coding a construction -\newif\ifPst@CodeFig -\define@key[psset]{pst-eucl}{CodeFig}[false]{\@nameuse{Pst@CodeFig#1}}% +\define@boolkey[psset]{pst-eucl}[Pst@]{CodeFig}[true]{} +%\define@boolkey[psset]{pst-eucl}[Pst@]{CodeFigA}[true]{\def\psk@CodeFigA{#1}} +%\define@boolkey[psset]{pst-eucl}[Pst@]{CodeFigB}[true]{\def\psk@CodeFigB{#1}} \newif\ifPst@CodeFigA -\define@key[psset]{pst-eucl}{CodeFigA}{\edef\psk@CodeFigA{#1}\@nameuse{Pst@CodeFigA#1}}% +\define@key[psset]{pst-eucl}{CodeFigA}[undef]{\edef\psk@CodeFigA{#1}\@nameuse{Pst@CodeFigA#1}}% \newif\ifPst@CodeFigB -\define@key[psset]{pst-eucl}{CodeFigB}{\edef\psk@CodeFigB{#1}\@nameuse{Pst@CodeFigB#1}}% -\define@key[psset]{pst-eucl}{CodeFigColor}{\edef\psk@CodeFigColor{#1}}% -\define@key[psset]{pst-eucl}{CodeFigStyle}{\edef\psk@CodeFigStyle{#1}}% +\define@key[psset]{pst-eucl}{CodeFigB}[undef]{\edef\psk@CodeFigB{#1}\@nameuse{Pst@CodeFigB#1}}% + +\define@key[psset]{pst-eucl}{CodeFigColor}[cyan]{\edef\psk@CodeFigColor{#1}}% +\define@key[psset]{pst-eucl}{CodeFigStyle}[dashed]{\edef\psk@CodeFigStyle{#1}}% \newif\ifPst@CodeFigAarc% \define@key[psset]{pst-eucl}{CodeFigAarc}[true]{\@nameuse{Pst@CodeFigAarc#1}} \newif\ifPst@CodeFigBarc% \define@key[psset]{pst-eucl}{CodeFigBarc}[true]{\@nameuse{Pst@CodeFigBarc#1}} %% for specifying a distance for the circle -\define@key[psset]{pst-eucl}{Radius}{\edef\psk@Radius{#1}}% -\define@key[psset]{pst-eucl}{RadiusA}{\edef\psk@RadiusA{#1}}% -\define@key[psset]{pst-eucl}{RadiusB}{\edef\psk@RadiusB{#1}}% -\define@key[psset]{pst-eucl}{Diameter}{\edef\psk@Diameter{#1}}% -\define@key[psset]{pst-eucl}{DiameterA}{\edef\psk@DiameterA{#1}}% -\define@key[psset]{pst-eucl}{DiameterB}{\edef\psk@DiameterB{#1}}% +\define@key[psset]{pst-eucl}{Radius}[none]{\edef\psk@Radius{#1}}% +\define@key[psset]{pst-eucl}{RadiusA}[undef]{\edef\psk@RadiusA{#1}}% +\define@key[psset]{pst-eucl}{RadiusB}[undef]{\edef\psk@RadiusB{#1}}% +\define@key[psset]{pst-eucl}{Diameter}[none]{\edef\psk@Diameter{#1}}% +\define@key[psset]{pst-eucl}{DiameterA}[undef]{\edef\psk@DiameterA{#1}}% +\define@key[psset]{pst-eucl}{DiameterB}[undef]{\edef\psk@DiameterB{#1}}% % for specifying a distance for the circle -\define@key[psset]{pst-eucl}{DistCoef}{\edef\psk@DistCoef{#1}}% -\define@key[psset]{pst-eucl}{AngleCoef}{\edef\psk@AngleCoef{#1}}% +\define@key[psset]{pst-eucl}{DistCoef}[none]{\edef\psk@DistCoef{#1}}% +\define@key[psset]{pst-eucl}{AngleCoef}[none]{\edef\psk@AngleCoef{#1}}% % for curvilign abscissa placement \newif\ifPst@CurvAbsNeg% \define@key[psset]{pst-eucl}{CurvAbsNeg}[false]{\@nameuse{Pst@CurvAbsNeg#1}}% % first and last point of a generic curve -\define@key[psset]{pst-eucl}{GenCurvFirst}{\edef\psk@GenCurvFirst{#1}}% -\define@key[psset]{pst-eucl}{GenCurvLast}{\edef\psk@GenCurvLast{#1}}% +\define@key[psset]{pst-eucl}{GenCurvFirst}[none]{\edef\psk@GenCurvFirst{#1}}% +\define@key[psset]{pst-eucl}{GenCurvLast}[none]{\edef\psk@GenCurvLast{#1}}% % increment of a generic curve -\define@key[psset]{pst-eucl}{GenCurvInc}{\edef\psk@GenCurvInc{#1}}% +\define@key[psset]{pst-eucl}{GenCurvInc}[1]{\edef\psk@GenCurvInc{#1}}% %% Default values % -------------- +\def\resetEUCLvalues{% \psset{% PointSymbol=default, PointSymbolA=undef, PointSymbolB=undef, PointSymbolC=undef, PointName=default, PointNameA=undef, PointNameB=undef, PointNameC=undef, @@ -138,8 +142,9 @@ 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, ... + GenCurvInc=1}} +\resetEUCLvalues +%\SpecialCoor %% for using polar coordinates, node position, ... \psset{dimen=middle}% remark of ML \def\@undef{undef}% \def\@default{default}% @@ -148,6 +153,7 @@ \def\@polygon{polygon} \def\@polyline{polyline} \def\@curve{curve} +\def\@none{none} \def\tx@PtoC{ tx@Dict begin PtoC end } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \iffalse %%%%%%%%%% \pst@newnode is already defined in pst-node @@ -270,12 +276,13 @@ end}% %%end modif DR 11/2003 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% #1 -> point coordinates -\def\Pst@geonodelabel#1{%% {nodename} - \ifx\psk@PointSymbol\@none\else% - \ifx\psk@PointSymbol\@default\edef\psk@PointSymbol{*}\fi% +\def\Pst@geonodelabel#1{% % {nodename} + \ifx\psk@PointSymbol\@none\else + \ifx\psk@PointSymbol\@default \def\psk@PointSymbol{*}\fi \psdot[dotstyle=\psk@PointSymbol](#1)% + \Pst@PutPointLabel{#1}%DR 041104 \fi%DR 02092004 - \Pst@PutPointLabel{#1}%DR 041104 + \ifx\psk@PointName\@none\else\Pst@PutPointLabel{#1}\fi%DR 041104 }% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\Pst@PutPointLabel#1{%DR 041104 @@ -308,7 +315,7 @@ end}% \let\Anglepstslashslash=\Anglepstslashh% \let\Anglepstslashslashslash=\Anglepstslashhh% %%begin modif alaindelplanque 11/2003 -%%begin modif Germain Boxer 04/2014 +%%begin modif Germain Boyer 04/2014 \def\MarkHash{% \rput{\ifx\psk@MarkAngle\@undef45\else\psk@MarkAngle\fi} {\psline(-\psMarkHashLength,0)(\psMarkHashLength,0)}} @@ -366,34 +373,36 @@ end}% % %%end modif alaindelplanque 11/2003 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% #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\psset{#1}% % Affectation of local parameters +%% #1 #2 #3 -> 3 nodes for defining the right angle +\def\pstRightAngle{\pst@object{pstRightAngle}} +\def\pstRightAngle@i#1#2#3{% + \begingroup + \addbefore@par{linestyle=solid,linecolor=black,linewidth=\pslinewidth} + \use@par% % Affectation of local parameters %% not good at all, but \rput{0}(#3){\rput{(#2)}{stuff}} doesn't work... - \rput(#3){% + \rput(#2){% \ifx\psk@RightAngleType\@default% \pspolygon(0,0)%%modif 12/2004 - (!tx@EcldDict begin /N@#4 GetNode exch Atan \psk@RightAngleSize\space exch PtoC end)% - (!tx@EcldDict begin /N@#4 GetNode exch Atan /N@#2 GetNode exch Atan + (!tx@EcldDict begin /N@#3 GetNode exch Atan \psk@RightAngleSize\space exch PtoC end)% + (!tx@EcldDict begin /N@#3 GetNode exch Atan /N@#1 GetNode exch Atan 2 copy sub abs 91 gt { 2 copy lt { exch 360 add exch } { 360 add } ifelse } if %%DR 2005/01/14 %%2 copy lt { exch 360 sub exch } if add 2 div 2 sqrt \psk@RightAngleSize\space mul exch PtoC end)% - (!tx@EcldDict begin /N@#2 GetNode exch Atan \psk@RightAngleSize\space exch PtoC end)% + (!tx@EcldDict begin /N@#1 GetNode exch Atan \psk@RightAngleSize\space exch PtoC end)% \else\ifx\psk@RightAngleType\@german% - \pstMarkAngle[MarkAngleRadius=\psk@RightAngleSize,LabelSep=\psk@RightAngleSize\space .5 mul]{#2}{#3}{#4}% + \pstMarkAngle[MarkAngleRadius=\psk@RightAngleSize,LabelSep=\psk@RightAngleSize\space .5 mul]{#1}{#2}{#3}% {\psscalebox{\psk@RightAngleSize}{\pscircle*{.08}}}% \else\ifx\psk@RightAngleType\@suisseromand% \rput{*0}% - (!tx@EcldDict begin /N@#4 GetNode exch Atan /N@#2 GetNode exch Atan + (!tx@EcldDict begin /N@#3 GetNode exch Atan /N@#1 GetNode exch Atan 2 copy lt { exch 360 sub exch } if add 2 div .45 \psk@RightAngleSize\space mul exch PtoC end)% {\psscalebox{\psk@RightAngleSize}{\pscircle*{.08}}}% \pspolygon(0,0)% - (!tx@EcldDict begin /N@#4 GetNode exch Atan \psk@RightAngleSize\space exch PtoC end )% - (!tx@EcldDict begin /N@#2 GetNode exch Atan \psk@RightAngleSize\space exch PtoC end )% + (!tx@EcldDict begin /N@#3 GetNode exch Atan \psk@RightAngleSize\space exch PtoC end )% + (!tx@EcldDict begin /N@#1 GetNode exch Atan \psk@RightAngleSize\space exch PtoC end )% \fi\fi\fi}% - \egroup\ignorespaces% hv 20130312 + \endgroup\ignorespaces% hv 20130312 }% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% #2 #3 #4 -> 3 nodes for defining the angle @@ -641,7 +650,7 @@ end}% exch){\pnode{\@image}}% }%%end rput \xdef\@@GenCourbe{\@@GenCourbe(\@image)}%%for accumulating points - \ifPst@CentralSym\ifPst@CodeFig% + \ifPst@CentralSym\ifPst@CodeFig \edef\psk@OldSegmentSymbol{\psk@SegmentSymbol}% \edef\psk@SegmentSymbol{\expandafter\PstParamListFirst\psk@OldSegmentSymbol,undef/}% \ifx\psk@SegmentSymbol\@undef\edef\psk@SegmentSymbol{\LastValidSS}\else\edef\LastValidSS{\psk@SegmentSymbol}\fi @@ -679,7 +688,7 @@ end}% exch){\pnode{#2}}% }%%end rput \xdef\@@GenCourbe{\@@GenCourbe(#2)}%%for accumulating points - \ifPst@CentralSym\ifPst@CodeFig% + \ifPst@CentralSym\ifPst@CodeFig \edef\psk@OldSegmentSymbol{\psk@SegmentSymbol}% \edef\psk@SegmentSymbol{\expandafter\PstParamListFirst\psk@OldSegmentSymbol,undef/}% \ifx\psk@SegmentSymbol\@undef\edef\psk@SegmentSymbol{\LastValidSS}\else\edef\LastValidSS{\psk@SegmentSymbol}\fi @@ -716,7 +725,7 @@ end}% %%end modif alaindelplanque 11/2003 \expandafter\ifx\csname psteucl@old\endcsname\relax\Pst@HomO[]{#2}{#3}[#4]% \else\Pst@HomO[]{#2}{#3}{#4}\fi%%%DR 14042005 - \ifPst@CodeFig% + \ifPst@CodeFig \psset{linecolor=\psk@CodeFigColor, linestyle=\psk@CodeFigStyle}% \pstSegmentMark{#2}{#4}% \pstSegmentMark{#4}{#3}% @@ -772,9 +781,9 @@ end}% \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}{#3}% - \Pst@RightAngle[]{#5}{@Middle#2#4}{#2}% + \pstRightAngle[]{#5}{@Middle#4#3}{#4}% + \pstRightAngle[]{#5}{@Middle#2#3}{#3}% + \pstRightAngle[]{#5}{@Middle#2#4}{#2}% \Pst@SegmentMark[SegmentSymbol=\psk@SegmentSymbolA]{#4}{@Middle#4#3}% \Pst@SegmentMark[SegmentSymbol=\psk@SegmentSymbolA]{@Middle#4#3}{#3}% \Pst@SegmentMark[SegmentSymbol=\psk@SegmentSymbolB]{#3}{@Middle#2#3}% @@ -821,8 +830,8 @@ end}% {\pnode{\@image}}% }% \xdef\@@GenCourbe{\@@GenCourbe(\@image)}%%for accumulating points - \ifPst@CodeFig% - \bgroup% + \ifPst@CodeFig + \bgroup \psset{linecolor=\psk@CodeFigColor, linestyle=\psk@CodeFigStyle}% \ncline[arrows=->,nodesep=0]{\@antecedent}{\@image} \ifx\psk@TransformLabel\@none @@ -987,17 +996,18 @@ end}% %% #7 -> label %% #8 -> node name of the second point %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\pstInterLC{\@ifnextchar[\Pst@InterLC{\Pst@InterLC[]}}% -\def\Pst@InterLC[#1]#2#3#4#5#6#7{% - \bgroup% - \psset{#1}% % Affectation of local parameters - \rput(#4){% +\def\pstInterLC{\pst@object{pstInterLC}} +\def\pstInterLC@i#1#2#3#4#5#6{% + \begingroup + \pst@killglue + \use@par + \rput(#3){% \pnode(! tx@EcldDict begin - /N@#2 GetNode /N@#3 GetNode 4 copy EqDr + /N@#1 GetNode /N@#2 GetNode 4 copy EqDr \ifx\psk@Radius\@none \ifx\psk@Diameter\@none - /N@#4 GetNode /N@#5 GetNode ABDist + /N@#3 GetNode /N@#4 GetNode ABDist \else\psk@Diameter 2 div \fi \else\psk@Radius @@ -1005,21 +1015,25 @@ end}% InterLineCircle /Glby exch def /Glbx exch def \pst@number\psyunit div exch \pst@number\psxunit div exch 2 copy end - /#6.Y exch def /#6.X exch def % save the coors for futher use - ){#6}% + /#5.Y exch def /#5.X exch def % save the coors for futher use + ){#5}% \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% - \Pst@geonodelabel{#6}\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% - \Pst@geonodelabel{#7}% - \egroup% + end){\pnode{#6}} + }% + \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@geonodelabel{#5} + \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 + \Pst@geonodelabel{#6}% + \endgroup + \ignorespaces }% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Intersection between two circles @@ -1072,26 +1086,36 @@ end}% 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 - \Pst@geonodelabel{#6}\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 - \Pst@geonodelabel{#7}\egroup% + \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@PosAngleA\@undef\else\ifx\psk@PosAngleA\@none\else\psset{PosAngle=\psk@PosAngleA}\fi\fi + \ifx\psk@PointSymbolA\@undef\else\ifx\psk@PointSymbolA\@none\else\psset{PointSymbol=\psk@PointSymbolA}\fi\fi + \ifx\psk@PointNameA\@undef\else\ifx\psk@PointNameA\@none\else\psset{PointName=\psk@PointNameA}\fi\fi + \ifx\psk@PosAngleA\@undef\else\ifx\psk@PointSymbolA\@none\else\Pst@geonodelabel{#6}\fi\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@PosAngleA\@undef\else\ifx\psk@PosAngleB\@none\else\psset{PosAngle=\psk@PosAngleB}\fi\fi + \ifx\psk@PointSymbolB\@undef\else\ifx\psk@PointSymbolB\@none\else\psset{PointSymbol=\psk@PointSymbolB}\fi\fi + \ifx\psk@PointNameB\@undef\else\ifx\psk@PointNameB\@none\else\psset{PointName=\psk@PointNameB}\fi\fi + \ifx\psk@PosAngleB\@undef\else\ifx\psk@PointSymbolB\@none\else\Pst@geonodelabel{#7}\fi\fi + \egroup \psset{linecolor=\psk@CodeFigColor, linestyle=\psk@CodeFigStyle, arcsep=-1}% \ifx\psk@CodeFigA\@undef% \ifx\psk@CodeFigB\@undef\ifPst@CodeFig\ifPst@CodeFigAarc\pstArcOAB{#2}{#6}{#7}\else\pstArcnOAB{#2}{#6}{#7}\fi\fi\fi \else% - \ifPst@CodeFigA\ifPst@CodeFigAarc\pstArcOAB{#2}{#6}{#7}\else\pstArcnOAB{#2}{#6}{#7}\fi\fi% + \ifx\psk@CodeFigA\@none \ifPst@CodeFigA\ifPst@CodeFigAarc\pstArcOAB{#2}{#6}{#7}\else\pstArcnOAB{#2}{#6}{#7}\fi\fi\fi \fi \ifx\psk@CodeFigB\@undef% \ifx\psk@CodeFigA\@undef\ifPst@CodeFig\ifPst@CodeFigBarc\pstArcOAB{#4}{#6}{#7}\else\pstArcnOAB{#4}{#6}{#7}\fi\fi\fi - \else% - \ifPst@CodeFigB\ifPst@CodeFigBarc\pstArcOAB{#4}{#6}{#7}\else\pstArcnOAB{#4}{#6}{#7}\fi\fi% + \else + \ifx\psk@CodeFigB\@none \ifPst@CodeFigB\ifPst@CodeFigBarc\pstArcOAB{#4}{#6}{#7}\else\pstArcnOAB{#4}{#6}{#7}\fi\fi\fi \fi - \egroup% + \egroup }% %% Intersection between two functions %% #2 #3 -> f and g (functions) @@ -1143,34 +1167,34 @@ end}% \egroup% } %% Intersection between a function and a circle -%% #2 -> f (function) -%% #3 #4 -> points defining the circle (center and point) -%% #5 -> approximation of the root -%% #6 -> node name of the first point -\def\pstInterFC{\@ifnextchar[\Pst@InterFC{\Pst@InterFC[]}}% -\def\Pst@InterFC[#1]#2#3#4#5#6{% - \bgroup\psset{#1}% % Affectation of local parameters -% \rput(! -% tx@EcldDict begin -% #5 { /N@#3 GetNode 2 copy /N@#4 GetNode ABDist \pst@number\psxunit div -% 3 1 roll \pst@number\psyunit div exch \pst@number\psxunit div exch x #2 ABDist sub } { 0 } NewtonSolving pop -% pop dup /x exch def #2 -% end){\pnode{#6}}% +%% #1 -> f (function) +%% #2 #3 -> points defining the circle (center and point) +%% #4 -> approximation of the root +%% #5 -> node name of the first point +\def\pstInterFC{\pst@object{pstInterFC}}% +\def\pstInterFC@i#1#2#3#4#5{% + \begingroup + \pst@killglue + \use@par + \edef\@function{ \ifPst@algebraic (#1) AlgParser cvx exec \else #1 \fi\space }% \pnode(! tx@EcldDict begin - #5 - { /N@#3 GetNode 2 copy /N@#4 GetNode ABDist \pst@number\psxunit div - 3 1 roll \pst@number\psyunit div exch \pst@number\psxunit div exch x #2 ABDist sub } + #4 + { /N@#2 GetNode 2 copy /N@#3 GetNode ABDist \pst@number\psxunit div + 3 1 roll \pst@number\psyunit div exch \pst@number\psxunit div exch x \@function + ABDist sub } { 0 } NewtonSolving pop pop dup /x exch def - \ifPst@algebraic (#2) AlgParser cvx exec \else #2 \fi + \@function 2 copy end - /#5.Y exch def /#5.X exch def % save the coors for futher use - ){#6}% - \Pst@geonodelabel{#6}% - \egroup% + /#4.Y exch def /#4.X exch def % save the coors for futher use + ){#5}% + \Pst@geonodelabel{#5}% + \endgroup + \ignorespaces } + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% ORTHOGONAL PROJECTION %% #2 #3 -> nodes defining the line where to project @@ -1304,7 +1328,7 @@ end}% \bgroup \Pst@Projection@iv{\@antecedent}{@ProjOrth\@antecedent on\@FrstPt\@ScdPt} \psset{linecolor=\psk@CodeFigColor, linestyle=\psk@CodeFigStyle}% - \Pst@RightAngle[linestyle=solid]{\@FrstPt}{@ProjOrth\@antecedent on\@FrstPt\@ScdPt}{\@antecedent}% + \pstRightAngle[linestyle=solid]{\@FrstPt}{@ProjOrth\@antecedent on\@FrstPt\@ScdPt}{\@antecedent}% \Pst@SegmentMark[]{\@image}{@ProjOrth\@antecedent on\@FrstPt\@ScdPt}% \Pst@SegmentMark[]{@ProjOrth\@antecedent on\@FrstPt\@ScdPt}{\@antecedent}% \egroup @@ -1342,7 +1366,7 @@ end}% \bgroup \Pst@Projection@ii{#1}{@ProjOrth#1on\@FrstPt\@ScdPt} \psset{linecolor=\psk@CodeFigColor, linestyle=\psk@CodeFigStyle}% - \Pst@RightAngle[linestyle=solid]{\@FrstPt}{@ProjOrth#1on\@FrstPt\@ScdPt}{#1}% + \pstRightAngle[linestyle=solid]{\@FrstPt}{@ProjOrth#1on\@FrstPt\@ScdPt}{#1}% \Pst@SegmentMark[]{#2}{@ProjOrth#1on\@FrstPt\@ScdPt}% \Pst@SegmentMark[]{@ProjOrth#1on\@FrstPt\@ScdPt}{#1}% \egroup @@ -1376,7 +1400,7 @@ end}% \egroup \ifPst@CodeFig \bgroup\psset{linecolor=\psk@CodeFigColor} - \Pst@RightAngle[]{#3}{#4}{#5} + \pstRightAngle[]{#3}{#4}{#5} \Pst@SegmentMark[]{#2}{#4}\Pst@SegmentMark[]{#4}{#3}% \egroup \fi @@ -1523,8 +1547,92 @@ end}% \psk@AngleCoef\space mul \fi } -\catcode`\@=\PstAtCode\relax +% +\def\psGetDistanceAB{\pst@object{psGetDistanceAB}}% Thmoas Söll 20140512 +\def\psGetDistanceAB@i(#1)(#2)#3{% +\begingroup% +\pst@killglue +\use@par +\pst@getcoor{#1}\pst@tempA +\pst@getcoor{#2}\pst@tempB +\pnode(! + 15 dict begin + /dec \psk@decimals\space def + \psk@PSfont findfont \psk@fontscale scalefont setfont + /laenge {10 dec exp mul round 10 dec exp div 15 string cvs stringwidth } def + /Wert { 10 dec exp mul round 10 dec exp div dec 0 eq {cvi 15 string cvs} {15 string cvs } ifelse + \ifPst@comma dot2comma \fi show } def + \pst@tempA \tx@UserCoor /y1 ED /x1 ED + \pst@tempB \tx@UserCoor /y2 ED /x2 ED + \pst@tempA /y3 ED /x3 ED + \pst@tempB /y4 ED /x4 ED + x3 x4 sub y3 y4 sub Pyth laenge /dx ED + x3 x4 add 2 div dx 2 div sub \psk@xShift\space add y3 y4 add 2 div \psk@yShift\space add + moveto % + x1 x2 sub y1 y2 sub Pyth Wert + x1 x2 add 2 div y1 y2 add 2 div + end ){#3} +\endgroup +\ignorespaces +} +% +\define@boolkey[psset]{pst-eucl}[Pst@]{AngleValue}[false]{} +\define@boolkey[psset]{pst-eucl}[Pst@]{AngleArc}[true]{} +\define@boolkey[psset]{pst-eucl}[Pst@]{ShowWedge}[true]{} +\define@key[psset]{pst-eucl}{ArcColor}{\def\psk@ArcColor{#1}}% +\define@key[psset]{pst-eucl}{WedgeColor}{\def\psk@WedgeColor{#1}}% +\define@key[psset]{pst-eucl}{WedgeOpacity}{\def\psk@WedgeOpacity{#1}}% +\psset[pst-eucl]{ArcColor=black,WedgeColor=blue,WedgeOpacity=0.2,AngleValue=false, + AngleArc,ShowWedge} +\def\psGetAngleABC{\pst@object{psGetAngleABC}}% Thmoas Söll 20140512 +\def\psGetAngleABC@i(#1)(#2)(#3)#4{% + \begingroup + \use@par + \pst@killglue + \pst@getcoor{#1}\pst@tempA + \pst@getcoor{#2}\pst@tempB + \pst@getcoor{#3}\pst@tempC + \pst@Verb{ + \pst@tempA \tx@UserCoor /y1 ED /x1 ED + \pst@tempB \tx@UserCoor /y2 ED /x2 ED + \pst@tempC \tx@UserCoor /y3 ED /x3 ED + y1 y2 sub x1 x2 sub Atan neg /delta1 ED + y3 y2 sub x3 x2 sub Atan neg /delta2 ED + delta1 delta2 le {180 delta2 delta1 add 2 div neg add /WiM ED} {delta2 delta1 add 2 div neg /WiM ED} ifelse + } + \ifPst@ShowWedge + \pswedge[fillstyle=solid,fillcolor=\psk@WedgeColor,opacity=\psk@WedgeOpacity](#2){\psk@MarkAngleRadius}{! delta1}{! delta2}% + \fi + \ifPst@AngleArc + \psarc[linecolor=\psk@ArcColor](#2){\psk@MarkAngleRadius}{! delta1}{! delta2}% + \fi + \pnode(! % + /dec \psk@decimals\space def + \psk@PSfont findfont \psk@fontscale scalefont setfont + /s1 { /Symbol findfont \psk@fontscale\space scalefont setfont } bind def + /laenge {10 dec exp mul round 10 dec exp div 15 string cvs stringwidth } def + /WertZeigen {10 dec exp mul round 10 dec exp div dec 0 eq {cvi 15 string cvs} {15 string cvs } ifelse + \ifPst@comma dot2comma \fi show s1 (\string\260) show} def + \pst@tempA \tx@UserCoor /y1 ED /x1 ED + \pst@tempB \tx@UserCoor /y2 ED /x2 ED + \pst@tempC \tx@UserCoor /y3 ED /x3 ED + y1 y2 sub x1 x2 sub Atan neg /delta1 ED + y3 y2 sub x3 x2 sub Atan neg /delta2 ED + delta1 delta2 le {360 delta2 delta1 sub abs sub /WiWert ED} {delta2 delta1 sub abs /WiWert ED} ifelse + delta1 delta2 le {180 delta2 delta1 add 2 div neg add /WiM ED} {delta2 delta1 add 2 div neg /WiM ED} ifelse + \psk@MarkAngleRadius\space delta2 delta1 add 2 div PtoC \pst@tempB exch pop add /ym1 ED \pst@tempB pop add /xm1 ED + xm1 \psk@MarkAngleRadius\space WiM cos mul \pst@number\psxunit mul add \psk@xShift\space add ym1 + \psk@MarkAngleRadius\space WiM sin mul \pst@number\psxunit mul add \psk@yShift\space add moveto % + \ifPst@AngleValue WiWert WertZeigen \fi + x2 0.8 WiM cos mul add y2 0.8 WiM sin mul add){#2-M}% + \uput{\psk@LabelSep}[! WiM]{0}(#2){#4}% + \endgroup + \ignorespaces +} +% +\catcode`\@=\PstAtCode\relax +% \endinput %% %% END pst-eps.tex diff --git a/Master/texmf-dist/tex/latex/pst-eucl/pst-eucl.sty b/Master/texmf-dist/tex/latex/pst-eucl/pst-eucl.sty index d2d74707b2b..7168d0f5bb7 100644 --- a/Master/texmf-dist/tex/latex/pst-eucl/pst-eucl.sty +++ b/Master/texmf-dist/tex/latex/pst-eucl/pst-eucl.sty @@ -1,11 +1,12 @@ \RequirePackage{pstricks} \RequirePackage{pst-node} -\ProvidesPackage{pst-eucl}[2011/08/04 package wrapper for PSTricks pst-eucl.tex] +\RequirePackage{pst-tools} +\ProvidesPackage{pst-eucl}[2014/05/17 package wrapper for PSTricks pst-eucl.tex] \DeclareOption{old}{\gdef\psteucl@old{}}% DR 10/05/2005 \ProcessOptions \input{pst-eucl.tex} \ProvidesFile{pst-eucl.tex} - [\filedate\space v\fileversion\space `PST-eucl' (dr)] + [\filedate\space v\fileversion\space `PST-eucl' (dr,hv)] \IfFileExists{pst-eucl.pro}{% \ProvidesFile{pst-eucl.pro} [2012/09/21 v. 1.01, PostScript prologue file (hv)] -- cgit v1.2.3