summaryrefslogtreecommitdiff
path: root/graphics
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-07-16 03:02:38 +0000
committerNorbert Preining <norbert@preining.info>2020-07-16 03:02:38 +0000
commit545097774851316dfcb923ebf87501026949a9b4 (patch)
tree770038ed3603890864f5508b68a248f69d46b604 /graphics
parent2e831b2bb763d3a1892a395c43f8b8248936b9dd (diff)
CTAN sync 202007160302
Diffstat (limited to 'graphics')
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/changelog.tex6
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdfbin17352 -> 17351 bytes
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdfbin1017702 -> 1017865 bytes
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz.sty4
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex4
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex4
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex12
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex26
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex28
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex4
-rw-r--r--graphics/pstricks/contrib/pst-eucl/Changes5
-rw-r--r--graphics/pstricks/contrib/pst-eucl/doc/pst-eucl-doc.bib19
-rw-r--r--graphics/pstricks/contrib/pst-eucl/doc/pst-eucl-doc.pdfbin1733912 -> 1568670 bytes
-rw-r--r--graphics/pstricks/contrib/pst-eucl/doc/pst-eucl-doc.tex95
-rw-r--r--graphics/pstricks/contrib/pst-eucl/tex/pst-eucl.tex199
15 files changed, 331 insertions, 75 deletions
diff --git a/graphics/pgf/contrib/circuitikz/doc/changelog.tex b/graphics/pgf/contrib/circuitikz/doc/changelog.tex
index a9e9200ee1..28f73e7cdb 100644
--- a/graphics/pgf/contrib/circuitikz/doc/changelog.tex
+++ b/graphics/pgf/contrib/circuitikz/doc/changelog.tex
@@ -5,6 +5,12 @@ full list of changes.
\begin{itemize}
\item
+ Version 1.2.2 (2020-07-15)
+
+ Bug-fix release: coordinate name leakage. The node and coordinate
+ names are global; the internal coordinate names have been made
+ stronger.
+\item
Version 1.2.1 (2020-07-06)
Several changes, both internal and user-visible. These are quite
diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf b/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
index 9853c5f419..3342c55b3a 100644
--- a/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
+++ b/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
index d4b9b8b763..9f5f858430 100644
--- a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
+++ b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty b/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
index c1e8d1808c..d4d3078950 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
@@ -12,8 +12,8 @@
\NeedsTeXFormat{LaTeX2e}
-\def\pgfcircversion{1.2.1}
-\def\pgfcircversiondate{2020/07/06}
+\def\pgfcircversion{1.2.2}
+\def\pgfcircversiondate{2020/07/15}
\ProvidesPackage{circuitikz}%
[\pgfcircversiondate{} The CircuiTikz circuit drawing package version \pgfcircversion]
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex
index a6b0d039b7..3899a1df12 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex
@@ -198,9 +198,9 @@
\else% normal bipole or source
\ifpgf@circuit@bipole@current@before
coordinate (\pgfcirc@a@prefix-Ifrom) at (\tikztostart)
- coordinate (\pgfcirc@a@prefix-Ito) at (anchorstartnode)
+ coordinate (\pgfcirc@a@prefix-Ito) at (pgfcirc@anchorstartnode)
\else
- coordinate (\pgfcirc@a@prefix-Ifrom) at (anchorendnode)
+ coordinate (\pgfcirc@a@prefix-Ifrom) at (pgfcirc@anchorendnode)
coordinate (\pgfcirc@a@prefix-Ito) at (\tikztotarget)
\fi
\fi
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex
index f2adc0d8ef..9d72e87d7d 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex
@@ -183,9 +183,9 @@
\else% normal bipole or source
\ifpgf@circuit@bipole@flow@before
coordinate (pgfcirc@Ffrom@flat) at (\tikztostart)
- coordinate (pgfcirc@Fto@flat) at (anchorstartnode)
+ coordinate (pgfcirc@Fto@flat) at (pgfcirc@anchorstartnode)
\else
- coordinate (pgfcirc@Ffrom@flat) at (anchorendnode)
+ coordinate (pgfcirc@Ffrom@flat) at (pgfcirc@anchorendnode)
coordinate (pgfcirc@Fto@flat) at (\tikztotarget)
\fi
\fi
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex
index 1aff5b9a06..2c4407045c 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex
@@ -141,7 +141,7 @@
% \typeout{FIN: TEMP\space\pgf@circ@temp\space LABANC\space\pgf@circ@labanc}
}
%Firstly, place a coordinate directly at the edge of the shape
- (\ctikzvalof{bipole/name}.\pgf@circ@temp) coordinate (labelcoor)
+ (\ctikzvalof{bipole/name}.\pgf@circ@temp) coordinate (pgfcirc@labelcoor)
%now decide, which labels should be drawn
\pgfextra{
\edef\pgf@temp{\ctikzvalof{label/align}}
@@ -209,7 +209,7 @@
\edef\pgf@circ@labposangle{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil}
}
% reset cm is not working correctly here
- (labelcoor)++(\pgf@circ@labposangle:\the\pgf@circ@res@temp) coordinate(labelcoor)
+ (pgfcirc@labelcoor)++(\pgf@circ@labposangle:\the\pgf@circ@res@temp) coordinate(pgfcirc@labelcoor)
node[anchor=mid, rotate=\pgfcirclabrot, \circuitikzbasekey/bipole #1 style]
(\ctikzvalof{bipole/name}#1){\pgf@circ@finallabels{#1}}
}
@@ -259,7 +259,7 @@
% the inner sep, so recover it by shifting the anchor
% reset cm is not working sometime, use @marmot solution
% see https://tex.stackexchange.com/a/476018/38080
- (labelcoor) ++(-\pgf@circ@labanc:\pgf@circ@res@temp) coordinate(labelcoor)
+ (pgfcirc@labelcoor) ++(-\pgf@circ@labanc:\pgf@circ@res@temp) coordinate(pgfcirc@labelcoor)
\pgfextra{\def\pgf@circ@labanctext{base}}%base
\else
\pgfextra{\def\pgf@circ@labanctext{north}}%north
@@ -267,13 +267,13 @@
\else
\ifnum \pgf@circ@labanc < 90
% shift, as above
- (labelcoor) ++(-\pgf@circ@labanc:\pgf@circ@res@temp) coordinate(labelcoor)
+ (pgfcirc@labelcoor) ++(-\pgf@circ@labanc:\pgf@circ@res@temp) coordinate(pgfcirc@labelcoor)
\pgfextra{\def\pgf@circ@labanctext{base}}%base
\else
\ifnum \pgf@circ@labanc > 180
% this shouldn't happen, but somehow it does (270 degree anchors)
% shift, as above
- (labelcoor) ++(-\pgf@circ@labanc:\pgf@circ@res@temp) coordinate(labelcoor)
+ (pgfcirc@labelcoor) ++(-\pgf@circ@labanc:\pgf@circ@res@temp) coordinate(pgfcirc@labelcoor)
\pgfextra{\def\pgf@circ@labanctext{base}}%base
\else
\pgfextra{\def\pgf@circ@labanctext{north}}%north
@@ -281,7 +281,7 @@
\fi
\fi
\fi\fi
- (labelcoor) node[anchor=\pgf@circ@labanctext,
+ (pgfcirc@labelcoor) node[anchor=\pgf@circ@labanctext,
inner sep=0.5\pgf@circ@res@temp, outer sep=0pt, \circuitikzbasekey/bipole #1 style,
](\ctikzvalof{bipole/name}#1){\strut\pgf@circ@finallabels{#1}%
}
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex
index 695deaea63..3f748f293d 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex
@@ -15,9 +15,9 @@
% swap two coordinates
\def\pgfcirc@swap@coordinates#1#2{%
- coordinate (tmp) at (#1)
+ coordinate (pgfcirc@tmp@swap) at (#1)
coordinate (#1) at (#2)
- coordinate (#2) at (tmp)
+ coordinate (#2) at (pgfcirc@tmp@swap)
}
% Names
@@ -107,7 +107,7 @@
\def\pgf@circ@temp{}
\ifx\pgf@temp\pgf@circ@temp % if it has not a name
\pgfmathrandominteger{\pgf@circ@rand}{1000}{9999}
- \ctikzset{bipole/name = #3\pgf@circ@rand} % create it (re-usage should not create problem, but...)
+ \ctikzset{bipole/name = pgfcirc@#3\pgf@circ@rand} % create it (re-usage should not create problem, but...)
\edef\pgfcirc@a@prefix{pgfcirc}% do not pollute the namespace for nothing
\else
\edef\pgfcirc@a@prefix{\ctikzvalof{bipole/name}}% for exporting v-i-f anchors
@@ -131,19 +131,19 @@
% set start and end labels
\ifpgf@circuit@bipole@inverted
\ifcsname pgf@anchor@#3#1@pathstart\endcsname%if special path-anchors are defined, use them!
- coordinate (anchorstartnode) at (\ctikzvalof{bipole/name}.pathend)
- coordinate (anchorendnode) at (\ctikzvalof{bipole/name}.pathstart)
+ coordinate (pgfcirc@anchorstartnode) at (\ctikzvalof{bipole/name}.pathend)
+ coordinate (pgfcirc@anchorendnode) at (\ctikzvalof{bipole/name}.pathstart)
\else
- coordinate (anchorstartnode) at (\ctikzvalof{bipole/name}.right)
- coordinate (anchorendnode) at (\ctikzvalof{bipole/name}.left)
+ coordinate (pgfcirc@anchorstartnode) at (\ctikzvalof{bipole/name}.right)
+ coordinate (pgfcirc@anchorendnode) at (\ctikzvalof{bipole/name}.left)
\fi
\else
\ifcsname pgf@anchor@#3#1@pathstart\endcsname%if special path-anchors are defined, use them!
- coordinate (anchorstartnode) at (\ctikzvalof{bipole/name}.pathstart)
- coordinate (anchorendnode) at (\ctikzvalof{bipole/name}.pathend)
+ coordinate (pgfcirc@anchorstartnode) at (\ctikzvalof{bipole/name}.pathstart)
+ coordinate (pgfcirc@anchorendnode) at (\ctikzvalof{bipole/name}.pathend)
\else
- coordinate (anchorstartnode) at (\ctikzvalof{bipole/name}.left)
- coordinate (anchorendnode) at (\ctikzvalof{bipole/name}.right)
+ coordinate (pgfcirc@anchorstartnode) at (\ctikzvalof{bipole/name}.left)
+ coordinate (pgfcirc@anchorendnode) at (\ctikzvalof{bipole/name}.right)
\fi
\fi
% draw the leads unless it's an open circuit
@@ -152,7 +152,7 @@
\ifx\pgf@temp\pgf@circ@temp % if it is an open do nothing
\else
% it is important to start the path with -- to have correct line joins!
- -- (\tikztostart) -- (anchorstartnode)
+ -- (\tikztostart) -- (pgfcirc@anchorstartnode)
\fi
% Add all the "ornaments": labels, annotations, voltages, currents and flows
\drawpoles
@@ -169,7 +169,7 @@
\ifx\pgf@temp\pgf@circ@temp % if it is an open do nothing
(\tikztotarget)
\else
- (anchorendnode) -- (\tikztotarget)
+ (pgfcirc@anchorendnode) -- (\tikztotarget)
\fi
% reset internal circuit keys
\pgfextra{\pgfcircresetpath}
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex
index 032a66f29c..0b9c9dd779 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex
@@ -182,12 +182,12 @@
}
% %\pgf@circ@Rlen/\ctikzvalof{current arrow scale} is equal to the length of the currarrow
%absolute move, minimum space is length of arrowhead
- coordinate (pgfcirc@midtmp) at ($(\tikztostart) ! \pgf@circ@Rlen/\ctikzvalof{current arrow scale} ! (anchorstartnode)$)
- coordinate (pgfcirc@midtmp) at ($(pgfcirc@midtmp) ! \distancefromnode ! (anchorstartnode)$)
+ coordinate (pgfcirc@midtmp) at ($(\tikztostart) ! \pgf@circ@Rlen/\ctikzvalof{current arrow scale} ! (pgfcirc@anchorstartnode)$)
+ coordinate (pgfcirc@midtmp) at ($(pgfcirc@midtmp) ! \distancefromnode ! (pgfcirc@anchorstartnode)$)
coordinate (pgfcirc@Vfrom@flat) at (pgfcirc@midtmp)
%absolute move, minimum space is length of arrowhead
- coordinate (pgfcirc@midtmp) at ($(\tikztotarget) ! \pgf@circ@Rlen/\ctikzvalof{current arrow scale} ! (anchorendnode)$)
- coordinate (pgfcirc@midtmp) at ($(pgfcirc@midtmp) ! \distancefromnode ! (anchorendnode)$)
+ coordinate (pgfcirc@midtmp) at ($(\tikztotarget) ! \pgf@circ@Rlen/\ctikzvalof{current arrow scale} ! (pgfcirc@anchorendnode)$)
+ coordinate (pgfcirc@midtmp) at ($(pgfcirc@midtmp) ! \distancefromnode ! (pgfcirc@anchorendnode)$)
coordinate (pgfcirc@Vto@flat) at (pgfcirc@midtmp)
coordinate (pgfcirc@mid) at ($(pgfcirc@Vfrom@flat)!0.5!(pgfcirc@Vto@flat)$)
@@ -203,8 +203,8 @@
coordinate (\pgfcirc@a@prefix-Vlab) at ($(\pgfcirc@a@prefix-Vto)!0.5!(\pgfcirc@a@prefix-Vfrom) $)
coordinate (pgfcirc@Vdir) at (\pgfcirc@a@prefix-Vto)
\else
- coordinate (\pgfcirc@a@prefix-Vto) at ($(pgfcirc@Vto@flat) ! \absvshift!90 : (anchorendnode)$)
- coordinate (\pgfcirc@a@prefix-Vfrom) at ($(pgfcirc@Vfrom@flat) ! \absvshift!-90 : (anchorstartnode)$)
+ coordinate (\pgfcirc@a@prefix-Vto) at ($(pgfcirc@Vto@flat) ! \absvshift!90 : (pgfcirc@anchorendnode)$)
+ coordinate (\pgfcirc@a@prefix-Vfrom) at ($(pgfcirc@Vfrom@flat) ! \absvshift!-90 : (pgfcirc@anchorstartnode)$)
coordinate (pgfcirc@Vcont1t) at ($(\ctikzvalof{bipole/name}.center) ! \bumpb ! (\ctikzvalof{bipole/name}.-110)$)
coordinate (pgfcirc@Vcont2t) at ($(\ctikzvalof{bipole/name}.center) ! \bumpb ! (\ctikzvalof{bipole/name}.-70)$)
coordinate (\pgfcirc@a@prefix-Vcont1) at ($(pgfcirc@Vcont1t) ! -\absvshift!90 : (pgfcirc@Vcont2t)$)
@@ -214,8 +214,8 @@
\fi
\else
% we are in case of american here
- coordinate (\pgfcirc@a@prefix-Vto) at ($(pgfcirc@Vto@flat) ! \absvshift!90 : (anchorendnode)$)
- coordinate (\pgfcirc@a@prefix-Vfrom) at ($(pgfcirc@Vfrom@flat) ! \absvshift!-90 : (anchorstartnode)$)
+ coordinate (\pgfcirc@a@prefix-Vto) at ($(pgfcirc@Vto@flat) ! \absvshift!90 : (pgfcirc@anchorendnode)$)
+ coordinate (\pgfcirc@a@prefix-Vfrom) at ($(pgfcirc@Vfrom@flat) ! \absvshift!-90 : (pgfcirc@anchorstartnode)$)
coordinate (pgfcirc@bottom) at (\ctikzvalof{bipole/name}.-90)
coordinate (pgfcirc@Vdir0) at ($(pgfcirc@mid)+(pgfcirc@bottom)-(pgfcirc@Vfrom@flat)$)
coordinate (\pgfcirc@a@prefix-Vlab) at ($(pgfcirc@bottom) ! \absvshift!-90 : (pgfcirc@Vdir0)$)
@@ -241,8 +241,8 @@
coordinate (pgfcirc@Vdir) at (\pgfcirc@a@prefix-Vto)
\else
% european voltages here
- coordinate (\pgfcirc@a@prefix-Vto) at ($(pgfcirc@Vto@flat) ! -\absvshift!90 : (anchorendnode)$)
- coordinate (\pgfcirc@a@prefix-Vfrom) at ($(pgfcirc@Vfrom@flat) ! -\absvshift!-90 : (anchorstartnode)$)
+ coordinate (\pgfcirc@a@prefix-Vto) at ($(pgfcirc@Vto@flat) ! -\absvshift!90 : (pgfcirc@anchorendnode)$)
+ coordinate (\pgfcirc@a@prefix-Vfrom) at ($(pgfcirc@Vfrom@flat) ! -\absvshift!-90 : (pgfcirc@anchorstartnode)$)
% identify the two control points for the "arc" of the voltage
coordinate (pgfcirc@Vcont1t) at ($(\ctikzvalof{bipole/name}.center) ! \bumpb ! (\ctikzvalof{bipole/name}.110)$)
coordinate (pgfcirc@Vcont2t) at ($(\ctikzvalof{bipole/name}.center) ! \bumpb ! (\ctikzvalof{bipole/name}.70)$)
@@ -255,8 +255,8 @@
\fi
\else
% we are in case of american here
- coordinate (\pgfcirc@a@prefix-Vto) at ($(pgfcirc@Vto@flat) ! \absvshift!-90 : (anchorendnode)$)
- coordinate (\pgfcirc@a@prefix-Vfrom) at ($(pgfcirc@Vfrom@flat) ! \absvshift!90 : (anchorstartnode)$)
+ coordinate (\pgfcirc@a@prefix-Vto) at ($(pgfcirc@Vto@flat) ! \absvshift!-90 : (pgfcirc@anchorendnode)$)
+ coordinate (\pgfcirc@a@prefix-Vfrom) at ($(pgfcirc@Vfrom@flat) ! \absvshift!90 : (pgfcirc@anchorstartnode)$)
coordinate (pgfcirc@top) at (\ctikzvalof{bipole/name}.90)
% move parallel to the component line
coordinate (pgfcirc@Vdir0) at ($(pgfcirc@mid)+(pgfcirc@top)-(pgfcirc@Vfrom@flat)$)
@@ -275,8 +275,8 @@
coordinate (\pgfcirc@a@prefix-Vfrom) at (pgfcirc@Vfrom@flat)
\fi
\ifpgf@circ@debugv
- node [ocirc, fill=red] at (anchorstartnode) {}
- node [ocirc, fill=blue] at (anchorendnode) {}
+ node [ocirc, fill=red] at (pgfcirc@anchorstartnode) {}
+ node [ocirc, fill=blue] at (pgfcirc@anchorendnode) {}
node [ocirc, fill=green] at (\pgfcirc@a@prefix-Vto) {}
node [ocirc, fill=yellow] at (\pgfcirc@a@prefix-Vfrom) {}
node [odiamondpole, fill=green!50!black] at (pgfcirc@Vto@flat) {}
diff --git a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex
index 06210be341..62fdaedb83 100644
--- a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex
@@ -10,8 +10,8 @@
%
% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
-\def\pgfcircversion{1.2.1}
-\def\pgfcircversiondate{2020/07/06}
+\def\pgfcircversion{1.2.2}
+\def\pgfcircversiondate{2020/07/15}
\writestatus{loading}{\pgfcircversiondate{} The CircuiTikz circuit drawing package version \pgfcircversion}
\usemodule[tikz]
diff --git a/graphics/pstricks/contrib/pst-eucl/Changes b/graphics/pstricks/contrib/pst-eucl/Changes
index 101f759b4b..a80eb43537 100644
--- a/graphics/pstricks/contrib/pst-eucl/Changes
+++ b/graphics/pstricks/contrib/pst-eucl/Changes
@@ -6,6 +6,11 @@ pst-eucl.pro --------
pst-eucl.tex --------
+1.74 2020/07/15 - add macro to draw the equilateral triangle on a given side AB, \pstETriangleAB.
+ - add macro to draw the square on a given side AB, \pstSquareAB.
+ - add macro to draw the regular polygon on a given side AB, \pstRegularPolygonAB.
+ - add macro to draw the regular polygon with center O and base point A, \pstRegularPolygonOA.
+ - add macro to draw the circle with radius length and two nodes A, B, \pstCircleABR.
1.73 2020/06/07 - Allow the star version for \pstLabelAB to use \cput* or \cput for the label
1.72a 2020/06/07 - fix a typo in the macro definition \pstMarkAngle
1.72 2020/04/18 - revert the change of \pstTriangle in v1.69, we should use \pst@object to clear \pst@par.
diff --git a/graphics/pstricks/contrib/pst-eucl/doc/pst-eucl-doc.bib b/graphics/pstricks/contrib/pst-eucl/doc/pst-eucl-doc.bib
index 7e9f03b000..f1d5a1b2ed 100644
--- a/graphics/pstricks/contrib/pst-eucl/doc/pst-eucl-doc.bib
+++ b/graphics/pstricks/contrib/pst-eucl/doc/pst-eucl-doc.bib
@@ -41,17 +41,17 @@
@ctan{multido,
title = {The Multido package},
-subtitle = {A loop facility for Generic TeX},
+subtitle = {A loop facility for Generic \TeX},
author = {Van Zandt, Timothy and Voß, Herbert and Niepraschk, Rolf},
url = {macros/latex/multido},
urldate = {2018-09-01},
-version = {1.42}
+version = {1.42},
}
@Book{PSTricks2,
author = {Herbert Voß},
- title = {\texttt{PSTricks} -- {G}rafik f\"ur \TeX{} und \LaTeX},
+ title = {\texttt{PSTricks} -- {G}rafik für \TeX{} und \LaTeX},
edition = {7},
publisher = {DANTE {\eV} and Lehmanns Media},
date = {2016},
@@ -88,7 +88,7 @@ version = {1.42}
@Book{tbt,
author = {Victor Eijkhout},
- title = {\TeX\ by Topic -- {A} \TeX{}nician Reference},
+ title = {\TeX\ by Topic -- A \TeX{}nician Reference},
edition = {1},
publisher = {DANTE {\eV} and Lehmanns Media},
year = {2014},
@@ -99,7 +99,7 @@ version = {1.42}
@Article{dtk02.1:voss:mathematischen,
author = {Herbert Voß},
- title = {Die mathematischen {F}unktionen von {P}ostscript},
+ title = {Die mathematischen Funktionen von Postscript},
journal = dtk,
year = 2002,
volume = {1/02},
@@ -108,14 +108,5 @@ version = {1.42}
month = mar,
pages = {40-47},
annote = bretter,
- 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/graphics/pstricks/contrib/pst-eucl/doc/pst-eucl-doc.pdf b/graphics/pstricks/contrib/pst-eucl/doc/pst-eucl-doc.pdf
index 0f792fb875..cbb859381e 100644
--- a/graphics/pstricks/contrib/pst-eucl/doc/pst-eucl-doc.pdf
+++ b/graphics/pstricks/contrib/pst-eucl/doc/pst-eucl-doc.pdf
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-eucl/doc/pst-eucl-doc.tex b/graphics/pstricks/contrib/pst-eucl/doc/pst-eucl-doc.tex
index cf38bc251e..054dae2eb2 100644
--- a/graphics/pstricks/contrib/pst-eucl/doc/pst-eucl-doc.tex
+++ b/graphics/pstricks/contrib/pst-eucl/doc/pst-eucl-doc.tex
@@ -1,4 +1,5 @@
-\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,smallheadings,
+\PassOptionsToPackage{style=dtk}{biblatex}
+\documentclass[11pt,english,BCOR10mm,DIV=12,bibliography=totoc,parskip=false,smallheadings,
headexclude,footexclude,oneside,english]{pst-doc}
\usepackage{pst-eucl}
\let\pstEuclideFV\fileversion
@@ -14,9 +15,10 @@
\def\Argsans#1{$\langle$#1$\rangle$}
\def\DefaultVal#1{(by default #1)}
-\usepackage{biblatex}
\addbibresource{\jobname.bib}
+\lstset{rframe={}}
+
\title{\texttt{pst-euclide}}
\subtitle{A PSTricks package for drawing geometric pictures; v.\pstEuclideFV}
@@ -352,8 +354,8 @@ the rule bar and the segment.
It does not display the ruler bar as default, and you need to setup \Lkeyword{linestyle}
to display it. The star version uses also the star version of the put macro (white background).
-\begin{LTXexample}[width=6cm,pos=l]
-\begin{pspicture}[showgrid=true](-1,-1)(4,4)
+\begin{LTXexample}[pos=t]
+\begin{pspicture}[showgrid=true](-2,-2)(5,5)
\psset{dotscale=0.5}\psset{PointSymbol=*}\footnotesize
\pstGeonode[PosAngle=-90](0.5,1.5){A}
\pstGeonode[PosAngle=-90](2.5,1.5){B}\pstLineAB{A}{B}
@@ -1267,6 +1269,26 @@ With this package, it becomes possible to draw:
\vspace{10pt}
+The macro \Lcs{pstCircleABR} draws the circle of given radius length $R$, through two given nodes $A$ and $B$, then outputs the circle center $O$.
+
+\begin{BDef}
+\Lcs{pstCircleABR}\OptArgs\Largb{A}\Largb{B}\Largb{$R$}\Largb{O}
+\end{BDef}
+
+Note that through from $A$ to $B$ and through from $B$ to $A$ will get the figure symmetric to $AB$.
+For example,
+
+\begin{LTXexample}[width=6cm,pos=l]
+\begin{pspicture}[showgrid](-3,-3)(3,3)\footnotesize
+\psset{unit=0.50cm}\psset{dotscale=0.5}\psset{PointSymbol=*}
+\pstGeonode[PosAngle={30,210}](1,0){A}(-2,-1){B}
+\pstCircleABR[linecolor=red!80]{A}{B}{\pstDistConst{2.5}}{O_1}
+\pstCircleABR[linecolor=blue!80]{B}{A}{\pstDistConst{2.5}}{O_2}
+\end{pspicture}
+\end{LTXexample}
+
+\vspace{10pt}
+
The following example show how to use the more complex distance macros,
and the parameter to fill the circle.
@@ -1594,6 +1616,71 @@ When they are separated, the radical axis is between of the circles.
\end{pspicture}
\end{LTXexample}
+\subsection{Regular polygons}
+For the 3-side and 4-side regular polygon, we provide the macro \Lcs{pstETriangleAB} and \Lcs{pstSquareAB} to draw them.
+In general, you can use the macro \Lcs{pstRegularPolygonAB} and \Lcs{pstRegularPolygonOA} to get a n-side regular polygon.
+
+\begin{BDef}
+\Lcs{pstETriangleAB}\OptArgs\Largb{A}\Largb{B}\Largb{C}\\
+\Lcs{pstSquareAB}\OptArgs\Largb{A}\Largb{B}\Largb{C}\Largb{D}\\
+\Lcs{pstRegularPolygonAB}\OptArgs\Largb{$A_0$}\Largb{$A_1$}\Largb{$n$}\Largb{$A_2,A_3,\cdots,A_{n-1}$}\\
+\Lcs{pstRegularPolygonOA}\OptArgs\Largb{$O$}\Largb{$A_0$}\Largb{$n$}\Largb{$A_1,A_2,\cdots,A_{n-1}$}
+\end{BDef}
+
+The macro \Lcs{pstETriangleAB} draw a equilateral triangle on a given side $AB$, and output the third node $C$;
+The macro \Lcs{pstSquareAB} draw a square on a given side $AB$, and output the other two nodes $C$, $D$;
+The macro \Lcs{pstRegularPolygonAB} draw a n-side regular polygon on a given side $A_0A_1$, and output the other nodes $A_2,A_3,\cdots,A_{n-1}$;
+The macro \Lcs{pstRegularPolygonOA} draw a n-side regular polygon with center $O$ and base point $A_0$, and output the other nodes $A_1,A_2,\cdots,A_{n-1}$.
+
+You can use the parameters \Lkeyword{linestyle}, \Lkeyword{linecolor}, \Lkeyword{linewidth}
+to control the line style; and use the parameters \Lkeyword{PointName}, \Lkeyword{PosAngle},
+\Lkeyword{PointSymbol} to control the point nodes; and use the parameters \Lkeyword{CurveType},
+\Lkeyword{fillstyle}, \Lkeyword{fillcolor} to control the polygon style.
+
+For the last output point list in macro \Lcs{pstRegularPolygonAB} and \Lcs{pstRegularPolygonOA}, if you do not enter a complete point list,
+the remaining points will be automatically named.
+
+Note that draw regular polygon with side from $A$ to $B$ and side from $B$ to $A$ will get the figure symmetric to $AB$.
+Here are some examples.
+
+\begin{LTXexample}[width=6cm,pos=l]
+\begin{pspicture}[showgrid](-1,-2)(3,2)
+\psset{unit=0.40cm}\footnotesize\psset{PointSymbol=none,PointNameSep=0.22cm}
+\pstGeonode[PosAngle={180,0},PointSymbol=*](0,0){A}(5,0){B}
+\pstETriangleAB[linecolor=red!60,PosAngle=90,PointSymbol=*]{A}{B}{C}
+\pstETriangleAB[linecolor=blue!60,PosAngle=-90,PointSymbol=*,fillstyle=solid,fillcolor=blue!20]{B}{A}{C'}
+\pstSquareAB[linecolor=red!60,PosAngle={90,90},PointSymbol=*]{A}{B}{C}{D}
+\pstSquareAB[linecolor=blue!60,PosAngle={-90,-90},PointSymbol=*,fillstyle=solid,fillcolor=blue!20,opacity=0.2]{B}{A}{C'}{D'}
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[width=6cm,pos=l]
+\begin{pspicture}[showgrid](-3,-3)(3,3)
+\psset{unit=0.40cm}\footnotesize\psset{PointSymbol=none,PointNameSep=0.22cm}
+\pstGeonode[PosAngle={180,0},PointSymbol=*](0,0){O}(5,0){A}
+\pstRegularPolygonOA[CurveType=polygon,linecolor=red!60,PointSymbol=*,PosAngle={120,240}]{O}{A}{3}{C,D}
+\pstRegularPolygonOA[CurveType=polygon,linecolor=green!60,PointSymbol=*,PosAngle={-90,0,90}]{O}{A}{4}{C,D,E}
+\pstRegularPolygonOA[CurveType=polygon,linecolor=blue!60,PointSymbol=*,PosAngle={65,110,135,180,225,250,305},PointName={A_1,A_2,A_3,A_4,A_5,A_6,A_7}]{O}{A}{8}{A1,A2,A3,A4,A5,A6,A7}
+\pstRegularPolygonOA[CurveType=polygon,linecolor=cyan!60,PointSymbol=*,PosAngle={20,15,60,75,110,130,150,180,200,220,240,260,290,310,330,350},PointName={A_1,A_2,A_3,A_4,A_5,A_6,A_7,A_8,A_9,A_{10},A_{11},A_{12},A_{13},A_{14},A_{15},A_{16}}]{O}{A}{17}{A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16}
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[width=6cm,pos=l]
+\begin{pspicture}[showgrid](-3,-4)(3,4)
+\psset{unit=0.40cm}\footnotesize\psset{PointSymbol=none,PointNameSep=0.22cm}
+\pstGeonode[PosAngle={180,0},PointSymbol=*](0,0){A}(2,0){B}
+\pstRegularPolygonAB[CurveType=polygon,linecolor=red!60,PointSymbol=*,PosAngle={90,90,90}]{A}{B}{3}{C,D,E}
+\pstRegularPolygonAB[CurveType=polygon,linecolor=red!60,PointSymbol=*,PosAngle={90,90}]{A}{B}{4}{C,D,E}
+\pstRegularPolygonAB[CurveType=polygon,linecolor=red!60,PointSymbol=*,PosAngle={-10,40,80,115,150,200}]{A}{B}{8}{C,D,E}
+\pstRegularPolygonAB[CurveType=polygon,linecolor=red!60,PointSymbol=*,PosAngle={290,310,330,350,10,30,45,65,85,115,135,155,170,190,210},PointName={B_2,B_3,B_4,B_5,B_6,B_7,B_8,B_9,B_{10},B_{11},B_{12},B_{13},B_{14},B_{15},B_{16}}]{A}{B}{17}{B2}
+\psset{CodeFig=true,CodeFigColor=gray,CodeFigStyle=solid}
+\pstRegularPolygonAB[CurveType=polygon,linecolor=blue!60,PointSymbol=*,PosAngle={-90,-90}]{B}{A}{3}{C,D,E}
+\pstRegularPolygonAB[CurveType=polygon,linecolor=blue!60,PointSymbol=*,PosAngle={-90,-90}]{B}{A}{4}{C,D,E}
+\pstRegularPolygonAB[CurveType=polygon,linecolor=blue!60,PointSymbol=*,PosAngle={140,190,240,-60,-40,10},PointName={A_2,A_3,A_4,A_5,A_6,A_7}]{B}{A}{8}{A2,A3,A4,A5,A6,A7}
+\pstRegularPolygonAB[CurveType=polygon,linecolor=blue!60,PointSymbol=*,PosAngle={140,160,180,200,220,240,260,280,300,320,340,360,20,40,60},PointName={A_2,A_3,A_4,A_5,A_6,A_7,A_8,A_9,A_{10},A_{11},A_{12},A_{13},A_{14},A_{15},A_{16}}]{B}{A}{17}{A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16}
+\end{pspicture}
+\end{LTXexample}
+
\subsection{Generic curve}
It is possible to generate a set of points using a loop, and to give
diff --git a/graphics/pstricks/contrib/pst-eucl/tex/pst-eucl.tex b/graphics/pstricks/contrib/pst-eucl/tex/pst-eucl.tex
index 8abea6715b..cfc56a70d8 100644
--- a/graphics/pstricks/contrib/pst-eucl/tex/pst-eucl.tex
+++ b/graphics/pstricks/contrib/pst-eucl/tex/pst-eucl.tex
@@ -20,8 +20,8 @@
\csname PSTEuclideLoaded\endcsname
\let\PSTEuclideLoaded\endinput
%
-\def\fileversion{1.73}
-\def\filedate{2020/06/17}
+\def\fileversion{1.74}
+\def\filedate{2020/07/15}
%%
\message{`PST-Euclide v\fileversion, \filedate\space (dr,hv)}%
%% prologue for postcript
@@ -738,9 +738,7 @@
\fi\fi\fi%
\Pst@ManageParamList{#6}%
\Pst@ManageParamList{#7}%
- \pstLineAB{#2}{#6}%
- \pstLineAB{#2}{#7}%
- \pstLineAB{#6}{#7}%
+ \pstPolygon(#2)(#6)(#7)%
\endgroup%
}%
%
@@ -854,9 +852,7 @@
\fi\fi\fi%
\Pst@ManageParamList{#6}%
\Pst@ManageParamList{#7}%
- \pstLineAB{#2}{#6}%
- \pstLineAB{#2}{#7}%
- \pstLineAB{#6}{#7}%
+ \pstPolygon(#2)(#6)(#7)%
\endgroup%
}%
%
@@ -965,9 +961,7 @@
\fi\fi\fi%
\Pst@ManageParamList{#6}%
\Pst@ManageParamList{#7}%
- \pstLineAB{#2}{#6}%
- \pstLineAB{#2}{#7}%
- \pstLineAB{#6}{#7}%
+ \pstPolygon(#2)(#6)(#7)%
\endgroup%
}%
%
@@ -1074,9 +1068,7 @@
\fi\fi\fi%
\Pst@ManageParamList{#6}%
\Pst@ManageParamList{#7}%
- \pstLineAB{#2}{#6}%
- \pstLineAB{#2}{#7}%
- \pstLineAB{#6}{#7}%
+ \pstPolygon(#2)(#6)(#7)%
\endgroup%
}%
%
@@ -2304,7 +2296,7 @@
\pstBissectBAC[PointName=none,PointSymbol=none,linestyle=none]{\pst@triangle@node@B}{\pst@triangle@node@A}{\pst@triangle@node@C}{@PST@TRIANGLE@EC_BC}
\pstOutBissectBAC[PointName=none,PointSymbol=none,linestyle=none]{\pst@triangle@node@C}{\pst@triangle@node@B}{\pst@triangle@node@A}{@PST@TRIANGLE@EC_CA}
\pstInterLL[PointName=none,PointSymbol=none]{\pst@triangle@node@A}{@PST@TRIANGLE@EC_BC}{\pst@triangle@node@B}{@PST@TRIANGLE@EC_CA}{\pst@triangle@node@E}
- \pstProjection[PointName=none,PointSymbol=none]{B}{C}{\pst@triangle@node@E}[#1]
+ \pstProjection[PointName=none,PointSymbol=none]{\pst@triangle@node@B}{\pst@triangle@node@C}{\pst@triangle@node@E}[#1]
\Pst@ManageParamList{\pst@triangle@node@E}%
\Pst@ManageParamList{#1}%
\endgroup
@@ -2313,7 +2305,7 @@
\pstBissectBAC[PointName=none,PointSymbol=none,linestyle=none]{\pst@triangle@node@B}{\pst@triangle@node@A}{\pst@triangle@node@C}{@PST@TRIANGLE@EC_BC}
\pstOutBissectBAC[PointName=none,PointSymbol=none,linestyle=none]{\pst@triangle@node@C}{\pst@triangle@node@B}{\pst@triangle@node@A}{@PST@TRIANGLE@EC_CA}
\pstInterLL[PointName=none,PointSymbol=none]{\pst@triangle@node@A}{@PST@TRIANGLE@EC_BC}{\pst@triangle@node@B}{@PST@TRIANGLE@EC_CA}{\pst@triangle@node@E}
- \pstProjection[PointName=none,PointSymbol=none]{B}{C}{\pst@triangle@node@E}[#1]
+ \pstProjection[PointName=none,PointSymbol=none]{\pst@triangle@node@B}{\pst@triangle@node@C}{\pst@triangle@node@E}[#1]
\Pst@ManageParamList{\pst@triangle@node@E}%
\endgroup
}%
@@ -3866,6 +3858,181 @@
\endgroup%
}%
%
+%% \pstCircleABR[Options]{A}{B}{R}{O}
+%% Draw a circle with node A and node B on it, and Radius R, output the center O.
+%% Parameters:
+%% #1 -> options
+%% #2 -> the input node A
+%% #3 -> the input node B
+%% #4 -> the input radius length in screen coordinate
+%% #5 -> the output center O
+\def\pstCircleABR{\@ifnextchar[\Pst@CircleABR{\Pst@CircleABR[]}}%
+\def\Pst@CircleABR[#1]#2#3#4#5{%
+ \begingroup%
+ \psset{#1}
+ \pst@getcoor{#2}\pst@tempA%
+ \pst@getcoor{#3}\pst@tempB%
+ \pnode(!
+ \pst@tempA \tx@UserCoor /y1 ED /x1 ED
+ \pst@tempB \tx@UserCoor /y2 ED /x2 ED
+ \pstUserDist{#4}\space /R ED
+ x2 x1 sub abs 1E-5 lt { % if x1=x2
+ y2 y1 sub abs 1E-5 lt { % if y1=y2
+ 0 0
+ } {
+ y2 y1 add 2 div /y0 ED
+ y2 y1 lt {
+ R dup mul y1 y0 sub dup mul sub sqrt x1 add /x0 ED
+ } {
+ R dup mul y1 y0 sub dup mul sub sqrt neg x1 add /x0 ED
+ } ifelse
+ x0 y0
+ } ifelse
+ } {
+ x2 dup mul x1 dup mul sub y2 dup mul y1 dup mul sub add x2 x1 sub div 2 div /Consta ED
+ y2 y1 sub x2 x1 sub div /Constb ED
+ Constb dup mul 1 add /CoefA ED
+ x1 Consta sub 2 mul Constb mul y1 2 mul sub /CoefB ED
+ x1 Consta sub dup mul y1 dup mul add R dup mul sub /CoefC ED
+ x1 x2 lt {
+ CoefB dup mul CoefA CoefC mul 4 mul sub sqrt CoefB sub CoefA 2 mul div /y0 ED
+ } {
+ CoefB dup mul CoefA CoefC mul 4 mul sub sqrt neg CoefB sub CoefA 2 mul div /y0 ED
+ } ifelse
+ Consta Constb y0 mul sub /x0 ED
+ x0 y0
+ } ifelse
+ ){#5}
+ \Pst@geonodelabel{#5}
+ \pstCircleOA{#5}{#2}
+ \endgroup%
+}%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Regular Polygons
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% \pstETriangleAB[Options]{A}{B}{C}
+%% Draw an equilateral triangle ABC on given side AB in anti-clockwise.
+%% Parameters:
+%% #1 -> options
+%% #2 -> [input] the node A
+%% #3 -> [input] the node B
+%% #4 -> [output] the node C
+\def\pstETriangleAB{\@ifnextchar[\Pst@ETriangleAB{\Pst@ETriangleAB[]}}
+\def\Pst@ETriangleAB[#1]#2#3#4{%
+ \begingroup
+ \psset{#1}%
+ \pstRotation[RotAngle=60,PointName=none,PointSymbol=none]{#2}{#3}[#4]
+ \Pst@geonodelabel{#4}
+ \pstPolygon(#2)(#3)(#4)%
+ \endgroup
+}
+%
+%% \pstSquareAB[Options]{A}{B}{C}{D}
+%% Draw a square ABCD on given side AB in anti-clockwise.
+%% Parameters:
+%% #1 -> options
+%% #2 -> [input] the node A
+%% #3 -> [input] the node B
+%% #4 -> [output] the node C
+%% #5 -> [output] the node D
+\def\pstSquareAB{\@ifnextchar[\Pst@SquareAB{\Pst@SquareAB[]}}
+\def\Pst@SquareAB[#1]#2#3#4#5{%
+ \begingroup
+ \@InitListMng%
+ \psset{#1}%
+ \pstRotation[RotAngle=90,PointName=none,PointSymbol=none]{#2}{#3}[#5]
+ \pstRotation[RotAngle=-90,PointName=none,PointSymbol=none]{#3}{#2}[#4]
+ \Pst@ManageParamList{#4}%
+ \Pst@ManageParamList{#5}%
+ \pstPolygon(#2)(#3)(#4)(#5)%
+ \endgroup
+}
+%
+%% \pstRegularPolygonAB[Options]{A_0}{A_1}{n}{A_2,A_3,A_4,...,A_{n-1}}
+%% Draw a $n$ side regular polygon with given side $A_0A_1$, output the other points.
+%% Parameters:
+%% #1 -> options
+%% #2 -> the input node A_0
+%% #3 -> the input node A_1
+%% #4 -> the input side number n
+%% #5 -> the output points A_2,A_3,A_4,...,A_{n-1}
+\def\pstRegularPolygonAB{\@ifnextchar[\Pst@RegularPolygonAB{\Pst@RegularPolygonAB[]}}%
+\def\Pst@RegularPolygonAB[#1]#2#3#4{%
+ \bgroup%
+ \@InitListMng%
+ \def\@PolyPointA{#2}\def\@PolyPointB{#3}\def\@PointLast{#3}%
+ \pst@cnth=#4\pst@cntg=2 % next point idx (start from 0)
+ \edef\@@GenCourbe{(#2)(#3)}%%for accumulating points
+ \ifPst@CodeFig
+ \pstCircleABR[PointName=O,PosAngle=-90,PointSymbol=*,linecolor=\psk@CodeFigColor,linestyle=\psk@CodeFigStyle]{#2}{#3}{\pstDist{#2}{#3} 2 div 180 #4 div sin div}{PolyCenter}
+ \else
+ \pstCircleABR[PointName=none,PointSymbol=none,linestyle=none]{#2}{#3}{\pstDist{#2}{#3} 2 div 180 #4 div sin div}{PolyCenter}
+ \fi
+ \psset{#1} % use parameters after calling \pstCircleABR.
+ \Pst@RegularPolygonAB@i%
+}%
+\def\Pst@RegularPolygonAB@i#1{%
+ \@List{#1}\edef\@PointOutLst{\@NewList}
+ \edef\@point{\expandafter\PstParamListFirst\@PointOutLst,undef/}
+ \Pst@RegularPolygonAB@iii%
+}%
+\def\Pst@RegularPolygonAB@iii{%
+ \ifx\@point\@undef\def\@point{\@PolyPointB\the\pst@cntg}\fi
+ \pstCircleChordNode[PointName=none,PointSymbol=none]{PolyCenter}{\@PointLast}{\pstDist{\@PolyPointA}{\@PolyPointB}}{\@point}
+ \xdef\@@GenCourbe{\@@GenCourbe(\@point)}%%for accumulating points
+ %\typeout{\@@GenCourbe}
+ \Pst@ManageParamList{\@point}\xdef\@PointLast{\@point}%
+ \edef\@PointOutLst{\expandafter\PstParamListLasts\@PointOutLst,undef/}%
+ \advance\pst@cntg by 1
+ \edef\@point{\expandafter\PstParamListFirst\@PointOutLst,undef/}
+ \ifnum\pst@cntg<\pst@cnth%
+ \def\@End{\Pst@RegularPolygonAB@iii}
+ \else
+ \def\@End{\pst@MngTransformCurve\egroup}
+ \fi%
+ \@End%
+}%
+%
+%% \pstRegularPolygonOA[Options]{O}{A_0}{n}{A_1,A_2,A_3,...,A_{n-1}}
+%% Draw a $n$ side regular polygon with given center O and the first node $A_1$, output the other points.
+%% Parameters:
+%% #1 -> options
+%% #2 -> the input center node O
+%% #3 -> the input first node A_0
+%% #4 -> the input side number n
+%% #5 -> the output points A_1,A_2,A_3,...,A_{n-1}
+\def\pstRegularPolygonOA{\@ifnextchar[\Pst@RegularPolygonOA{\Pst@RegularPolygonOA[]}}%
+\def\Pst@RegularPolygonOA[#1]#2#3#4{%
+ \bgroup%
+ \@InitListMng%
+ \psset{#1}\def\@PolyCenter{#2}\def\@PolyPointA{#3}\def\@PointLast{#3}\def\@PolySideNum{#4}%
+ \pst@cnth=#4\pst@cntg=1 % next point idx (start from 0)
+ \edef\@@GenCourbe{(#3)}%%for accumulating points
+ \Pst@RegularPolygonOA@i%
+}%
+\def\Pst@RegularPolygonOA@i#1{%
+ \@List{#1}\edef\@PointOutLst{\@NewList}
+ \edef\@point{\expandafter\PstParamListFirst\@PointOutLst,undef/}
+ \Pst@RegularPolygonOA@iii%
+}%
+\def\Pst@RegularPolygonOA@iii{%
+ \ifx\@point\@undef\def\@point{\@PolyPointA\the\pst@cntg}\fi
+ \pstCircleChordNode[PointName=none,PointSymbol=none]{\@PolyCenter}{\@PointLast}{\pstDist{\@PolyCenter}{\@PolyPointA} 180 \@PolySideNum\space div sin mul 2 mul}{\@point}
+ \xdef\@@GenCourbe{\@@GenCourbe(\@point)}%%for accumulating points
+ %\typeout{\@@GenCourbe}
+ \Pst@ManageParamList{\@point}\xdef\@PointLast{\@point}%
+ \edef\@PointOutLst{\expandafter\PstParamListLasts\@PointOutLst,undef/}%
+ \advance\pst@cntg by 1
+ \edef\@point{\expandafter\PstParamListFirst\@PointOutLst,undef/}
+ \ifnum\pst@cntg<\pst@cnth%
+ \def\@End{\Pst@RegularPolygonOA@iii}
+ \else
+ \def\@End{\pst@MngTransformCurve\egroup}
+ \fi%
+ \@End%
+}%
+%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Here are some functions to operate the conic curves.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%