summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-06-05 23:08:54 +0000
committerKarl Berry <karl@freefriends.org>2017-06-05 23:08:54 +0000
commit31ead02cd541572d668146cfbfcba137392aec8e (patch)
tree4ea744bc78b7f5fc545e7cb845a507d739dce426 /Master
parentb28c826ecab866d192e2c0e589ad90931e6fcd4f (diff)
pst-vehicle (5jun17)
git-svn-id: svn://tug.org/texlive/trunk@44466 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/generic/pst-vehicle/Changes.txt6
-rw-r--r--Master/texmf-dist/doc/generic/pst-vehicle/ListVehicles.tex471
-rw-r--r--Master/texmf-dist/doc/generic/pst-vehicle/README.md9
-rw-r--r--Master/texmf-dist/doc/generic/pst-vehicle/pst-vehicle-doc-fr.pdfbin0 -> 1877539 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pst-vehicle/pst-vehicle-doc-fr.tex938
-rw-r--r--Master/texmf-dist/doc/generic/pst-vehicle/pst-vehicle-doc.pdfbin1222129 -> 1241969 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pst-vehicle/pst-vehicle-doc.tex220
-rw-r--r--Master/texmf-dist/tex/generic/pst-vehicle/pst-vehicle.tex67
8 files changed, 1196 insertions, 515 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-vehicle/Changes.txt b/Master/texmf-dist/doc/generic/pst-vehicle/Changes.txt
new file mode 100644
index 00000000000..67da199cece
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-vehicle/Changes.txt
@@ -0,0 +1,6 @@
+pst-vehicle.tex ----------------
+
+1.1 2017/06/05
+ - fix for contant functions
+ - add option startPos to have a defined startrotation for the rear-wheel
+ - syncron start-rotation-position for front- and rear-wheel
diff --git a/Master/texmf-dist/doc/generic/pst-vehicle/ListVehicles.tex b/Master/texmf-dist/doc/generic/pst-vehicle/ListVehicles.tex
deleted file mode 100644
index 2ca9ef9e3af..00000000000
--- a/Master/texmf-dist/doc/generic/pst-vehicle/ListVehicles.tex
+++ /dev/null
@@ -1,471 +0,0 @@
-%%
-%% This is file `ListVehicles.tex',
-%%
-%% IMPORTANT NOTICE:
-%%
-%% Package `pst-vehicle.tex'
-%%
-%% Thomas S\"{o}ll
-%% with the collaboration of
-%% Juergen Gilg
-%% Manuel Luque
-%%
-%% This program can redistributed and/or modified under %%
-%% the terms of the LaTeX Project Public License %%
-%% Distributed from CTAN archives in directory %%
-%% macros/latex/base/lppl.txt; either version 1.3c of %%
-%% the License, or (at your option) any later version. %%
-
-%%
-%% DESCRIPTION:
-%% `pst-vehicle' is a PSTricks package
-%%
-%%
-\newpsstyle{segway}{rB=1.4,backwheel=\segWheel}
-\newpsstyle{unicycle}{rB=1.6,backwheel=\SpokesWheelB}
-\newpsstyle{tractor}{d=4,rB=1.4,rF=1.0}
-\newpsstyle{truck}{backwheel=\TruckWheel,frontwheel=\TruckWheel,d=6.28,rB=1.9,rF=1.9}
-\newpsstyle{bike}{backwheel=\SpokesWheelB,frontwheel=\SpokesWheelB,d=5.8,rB=1.6,rF=1.6}
-%\wheelA,\wheelB,\wheelC,\segWheel,\arrowWheel,\TruckWheel,\TractorFrontWheel,\TractorRearWheel,\SpokesWheelCrossed,\SpokesWheelA
-\def\Bike{% ------------------------------ Vehicle Nr. 1: normal bike ----------------------------
-\rput{!phiB}(0,0){% ------------ backwheel --- Hinterrad
-\pst@backwheel
-}%
-\rput{!phiF}(!/rB rF def AF1x AF1y){%------ frontwheel --- Vorderrad
-\pst@frontwheel
-}%
-\rput(!0 rB neg){%
-\psline[linewidth=3pt](2.5,1.95)(0,1.7)%
-\psline[linewidth=3pt](2.5,1.25)(0,1.45)%
-\rput{!phiB Gang div}(!2.5 rB){% Kurbel
-\pscircle*(0,0){0.4}%
-\psline[linewidth=4pt](-0.3,-0.9)(0.3,0.9)%
-\rput{!phiB Gang div neg}(-0.3,-0.9){\psline[linewidth=4pt](0,0)(-0.3,0)}%
-\rput{!phiB Gang div neg}(0.3,0.9){\psline[linewidth=4pt](0,0)(0.3,0)}%
-}%
-\psline[linewidth=5pt](5.8,1.6)(4.75,4.85)(3.8,4.85)%
-\psline[linewidth=5pt](0,1.6)(2.5,1.6)(5.2,3.65)%
-\psline[linewidth=5pt](0,1.6)(1.6,4.05)(5,4.05)%
-\psline[linewidth=5pt](2.5,1.6)(1.5,4.45)%
-\psline[linewidth=7pt](0.8,4.45)(2,4.45)%
-\pspolygon[linecolor=\pslinecolor,fillstyle=solid,fillcolor=\pslinecolor](5.05,3.85)(5.65,4.1)(5.65,3.6)%
-}%
-}%
-\def\HighWheeler{% ------------------------------ Vehicle Nr. 2: high wheeler -- Hochrad Nr 2 ----------
-%------ pedal behind the frontwheel -- Pedal hinter dem Rad ---------------------------------------
-\rput{!phiF 5 mul Gang div}(!AF1x AF1y){%
-\psline[linewidth=3pt,border=0.5pt,bordercolor=white](0,0)(1.15;135)
-\rput{!phiF 5 mul Gang div 180 add neg}(1.11;135){\pspolygon*[linearc=0.08,border=0.5pt,bordercolor=white]%
-(-0.25,0.06)(-0.1,0.08)(-0.08,0.16)(0.08,0.16)(0.1,0.08)(0.25,0.06)%
-(0.25,-0.06)(0.1,-0.08)(0.08,-0.16)(-0.08,-0.16)(-0.1,-0.08)(-0.25,-0.06)}
-\pscircle[linewidth=0.75pt,dimen=outer,linecolor=white](1.1;135){0.075}
-}%
-%--------------------------------------------------------------------------------------------
-\rput{!phiF}(!AF1x AF1y){% % frontwheel ----- Vorderrad
-\multido{\iA=0+10}{36}{%
-\rput(0,0){\psline[linewidth=0.7pt,border=0.35pt,bordercolor=white](0,0)(!rF \iA\space PtoC)}%
-}
-\pscircle[linewidth=7.5pt,dimen=outer](0,0){!rF}%
-\pscircle[linewidth=0.6pt,dimen=outer,linecolor=white](0,0){!rF 0.955 mul}%
-\pscircle*(0,0){0.3}%
-\pscircle*[linecolor=white](0,0){0.2}%
-\pscircle*(0,0){0.14}%
-}%
-%-------------------------------------------------------------------------------------------------
-%--------------------------------------------------------------------------------------------
-\rput{!phiF}(!AF1x AF1y){%
-\pscircle*(0,0){0.14}%
-\pscircle[linewidth=0.6pt,linecolor=white](0,0){0.07}
-}%
-%--------------------------------------------------------------------------------------------------
-\rput{!phiB}(0,0){% backwheel ------ Hinterrad
-\multido{\iA=0+24}{15}{%
-\rput(0,0){\psline[linewidth=0.7pt,border=0.35pt,bordercolor=white](0,0)(!rB \iA\space PtoC)}%
-}%
-\pscircle[linewidth=4.3pt,dimen=outer](0,0){!rB}%
-\pscircle[linewidth=0.6pt,dimen=outer,linecolor=white](0,0){!rB 0.91 mul}%
-\pscircle*[linewidth=0.5pt](0,0){0.14}%
-}%
-%-------- front to back connection -- Verbindung vordere Gabel zur Hinterachse ----------------------
-\rput(!AF1x AF1y){\pnode(!rF 1.06 mul 170 PtoC){ZA}}%
-\let\myfillcolor\pslinecolor
-\rput(!AF1x AF1y){%
-\pscustom[linewidth=0.4pt,linecolor=white,fillstyle=solid,fillcolor=\myfillcolor]{%
-\parametricplot[linewidth=0.5pt]{88}{10}{-(rF+0.36)*cos(Pi*t/180)|(rF+0.36)*sin(Pi*t/180)}%
-\psarc(!AF1x 0.1 sub neg AF1y 0.03 add neg){0.08}{200}{300}
-\parametricplot[linewidth=0.5pt]{10}{88}{-(rF+0.08-(t-100)*0.0353*2.5/78)*cos(Pi*t/180)|(rF+0.08-(t-100)*0.0353*2.5/78)*sin(Pi*t/180)}
-\closepath
-}%
-}%
-\rput(0,0){%
-\pscircle[linestyle=none,fillstyle=solid,fillcolor=\pslinecolor](0,0){0.08}%
-\pscircle[linewidth=0.9pt,linecolor=white](0,0){0.08}}
-%--------------------------------------------------------------------------------------------------
-%-------front part and handle bar --- Vordere Gabel und Lenker -------------------------------------------
-\rput{1.5}(!AF1x AF1y){%
-\psline[linewidth=5.5pt,border=0.5pt,bordercolor=white](0,0.1)(!0 rF 1.265 mul)%
-\pscircle*[linewidth=0.6pt](!0 rF 1.28 mul){0.075}%
-\psline[linewidth=5.5pt,linecolor=white](!0 rF 1.265 mul)(!0 rF 1.27 mul)
-\psline[linewidth=3pt,linearc=0.02](!0 rF 1.24 mul)(!0.193 rF 1.24 mul)(!0.33 rF 1.31 mul)(!0.38 rF 1.31 mul)
-\psline[linewidth=4.7pt,linearc=0.02,linecap=1,border=0.5pt,bordercolor=white](!0.42 rF 1.32 mul)(!0.455 rF 1.22 mul)
-\pscircle*[linewidth=0.6pt](!0.455 rF 1.223 mul){0.145}%
-\pscircle[linecolor=white,linewidth=0.5pt](!0.455 rF 1.223 mul){0.085}%
-\pscircle[linecolor=white,linewidth=0.65pt](!0.455 rF 1.223 mul){0.15}%
-\psline[linewidth=5.5pt,linecolor=white](!0 rF 1.208 mul)(!0 rF 1.211 mul)
-\psline[linewidth=8.5pt](!0 rF 1.186 mul)(!0 rF 1.208 mul)
-\psline[linewidth=5.5pt,linecolor=white](!0 rF 1.183 mul)(!0 rF 1.186 mul)
-}%
-%--------------------------------------------------------------------------------------------------
-%--------- pedal in front of the frontwheel --- Pedal vor dem Rad ---------------------------------------------------------------
-\rput{!phiF 5 mul Gang div 180 add}(!AF1x AF1y){%
-\psline[linewidth=3pt,border=0.5pt,bordercolor=white](0.12;135)(1.15;135)
-\rput{!phiF 5 mul Gang div 180 add neg}(1.11;135){\pspolygon*[linearc=0.08,border=0.5pt,bordercolor=white]%
-(-0.25,0.06)(-0.1,0.08)(-0.08,0.16)(0.08,0.16)(0.1,0.08)(0.25,0.06)%
-(0.25,-0.06)(0.1,-0.08)(0.08,-0.16)(-0.08,-0.16)(-0.1,-0.08)(-0.25,-0.06)}
-\pscircle[linewidth=0.75pt,dimen=outer,linecolor=white](1.1;135){0.075}
-\psline[linewidth=3pt](0,0)(0.12;135)
-\pscircle[linecolor=white,linewidth=0.3pt](0,0){0.065}%
-}
-%---------------------------------------------------------------------------------
-\rput(2,5.87){%
-%--------- special garniture frontwheel ---- Geschweifte Linie am Vorderrad -------------------------------------------------------
-\rput(0,0){%
-\pscustom[linewidth=1pt]{%
-\psarc(3.16,1.53){0.1}{0}{180}
-\psbezier(3.06,1.2)(3.2,1.05)(3.5,1.05)
-\psbezier(3.63,1.05)(3.6,1.16)(3.53,1.17)
-}%
-\pscircle*[linewidth=0.6pt](3.2,1.5){0.075}%
-\psellipse*[rot=0,linewidth=0.6pt](3.47,1.15)(0.085,0.05)%
-}%
-%------------ part of saddle ------ Sattelhalterung -----------------------------------------------------------
-\pscircle*[linewidth=0.6pt](2.63,1.6){0.068}%
-\rput(0,0){%
-\pscustom[showpoints=true,linewidth=1pt]{%
-\psarcn(2.66,1.63){0.097}{235}{10}
-\psbezier(2.8,1.3)(2.1,1.32)(1.4,1.32)
-\psbezier(1.1,1.32)(0.9,1.1)(0.82,1)
-\psbezier(0.74,0.9)(0.6,0.54)(0.3,0.54)
-\psbezier(0.15,0.54)(0.17,0.7)(0.17,0.7)
-\psarcn(0.31,0.7){0.14}{180}{0}
-\psbezier(0.44,0.61)(0.34,0.61)(0.32,0.61)
-}%
-\pscircle*[linewidth=0.6pt](0.33,0.673){0.075}%
-}%
-\rput(0,0){%
-\pscustom[showpoints=true,linewidth=1pt]{%
-\psbezier(0.35,0.53)(0.3,0.45)(0.1,0.48)(0.1,0.4)
-\psbezier(0.1,0.31)(0.18,0.345)(0.19,0.39)
-}%
-\psellipse*[rot=50,linewidth=0.6pt](0.2,0.4)(0.055,0.03)%
-}%
-%-------------------------------------------------------------------------------------------------------
-%------------------ saddle ----- Sattel ----------------------------------------------------------------
-\rput(0,0){%
-\pscustom[showpoints=true,linewidth=0.4pt,fillstyle=solid,fillcolor=\pslinecolor]{%
-\psbezier(1.34,1.25)(1.42,1.25)(1.43,1.25)(1.58,1.25)
-\psbezier(1.58,1.35)(1.62,1.38)(1.65,1.4)% <<----- Start the white line -- Startpunkt f\"{u}r die wei{\ss}e Linie
-\psbezier(1.7,1.37)(1.8,1.38)(1.91,1.38)
-\psbezier(1.98,1.38)(2.35,1.48)(2.35,1.55)
-\psbezier(2.35,1.59)(2.2,1.6)(2.15,1.6)
-\psbezier(2.05,1.6)(1.8,1.55)(1.74,1.55)
-\psbezier(1.56,1.55)(1.41,1.75)(1.1,1.75)
-\psbezier(0.9,1.75)(0.79,1.65)(0.79,1.59)
-\lineto(0.835,1.59)
-\psbezier(0.83,1.5)(1.12,1.45)(1.2,1.42)
-\psbezier(1.25,1.4)(1.34,1.38)(1.34,1.25)
-\closepath
-}%
-\psbezier[linecolor=white,linewidth=0.6pt](0.8,1.584)(1.1,1.75)(1.4,1.58)(1.67,1.38)
-}%
-}}%
-\def\Truck{% \psset{radH=1.9,radV=1.9,d=6.28,vehicle=\Truck,ownvehicle=\ownTestB,frontwheel=\segWheel,backwheel=\segWheel}
-% ------------------------------ Vehicle Nr. 3: truck -----------------------------------
-\rput(0,-2){%
-\pscustom[linecolor=blue,fillstyle=solid,fillcolor=blue!20]{%
-\psline(8.6,2)(8.38,2)
-\psarc(6.28,2){2.1}{0}{180}
-\psline(4.18,2)(2.1,2)
-\psarc(0,2){2.1}{0}{180}
-\psline(-2,2)(-2.2,2)
-\moveto(-2.2,2)
-\psline[linearc=0.2](-2.2,4.4)(2.5,4.4)(2.5,6)(4.4,6)(5.2,4.4)(7.8,4)(8.6,2)
-\moveto(4.2,5.7)
-\pspolygon[linearc=0.1](4.4,5.7)(2.8,5.7)(2.8,4.2)(5.1,4.2)
-}%
-\pswedge[fillstyle=solid,fillcolor=gray!20](6.28,2){2.1}{0}{180}
-\pswedge[fillstyle=solid,fillcolor=gray!20](0,2){2.1}{0}{180}
-\psarc[doubleline=true,doublecolor=blue!50](0,2){2.1}{0}{180}
-\psarc[doubleline=true,doublecolor=blue!50](6.28,2){2.1}{0}{180}
-% le phare
-\pswedge[linecolor=blue,fillstyle=solid,fillcolor=blue!20](8.65,3){0.4}{90}{270}
-% le conducteur
-\pstVerb{%
- /r1 0.4 def
- /a1 -50 def
- /b1 50 def
-% r2=r1*sqrt(2-sin(2*a1))
- /r2 r1 2 1 a1 cos sub mul sqrt mul def
- /b2 a1 sin neg 1 a1 cos sub atan def
-}%
-\rput(3.8,4.6){
-\pscustom[fillstyle=solid,fillcolor={[RGB]{253 191 183}}]{\psarc(0,0){!r1}{20}{-20}
- \psarc(!r1 0){0.075}{-90}{90}
- \closepath}
-\psarcn(!r1 0){!r2}{!b2 180 add}{!b2 180 add b1 sub}
-\pscircle*(0.2,0.1){0.05}
-\psarc(0.2,0.1){0.1}{60}{130}
-\psarc(-0.1,0){0.1}{120}{240}
-\pscustom[fillstyle=solid,fillcolor=red]{\psarc(0,0){!r1}{60}{160}\closepath}
-\pcline[nodesepB=1](!r1 60 cos mul r1 60 sin mul)(!r1 160 cos mul r1 160 sin mul)}
-}%
-\rput{!phiB}(0,0){% ----------- backwheel --- Hinterrad
-\pst@backwheel
-}%
-\rput{!phiF}(!/rB rF def AF1x AF1y){%----- frontwheel --- Vorderrad
-\pst@frontwheel
-}%
-}%
-
-%%%%%%%%%% Le tracteur %%%%%%%%%%%%
-\definecolor{couleurtracteur}{RGB}{130 196 108}
-\def\Tractor{% le tracteur seul
-\psset{fillcolor=couleurtracteur}
-\pscustom[fillstyle=solid]{%
-\psline(!rB 160 cos mul rB 160 sin mul)(!rB 1.25 mul 160 cos mul rB 1.25 mul 160 sin mul)(-0.8,1.6)(1.2,1.5)(1.7,0.6)(1.7,0)(! rB 0)
-\psarc(0,0){!rB}{0}{160}
-\closepath}
-\pscustom[fillstyle=solid]{
-\psline(1.4,1.14)(1.7,0.6)(1.7,-0.6)(2.4,-0.6)(2.4,-0.4)(3,-0.4)
-\psarcn(!dA12 rF rB sub){!rF}{180}{126.87}
-\psline(!dA12 rF 126.87 cos mul add rF rB sub rF 126.87 sin mul add)(2.4,0.4)(2.4,1.6)(2,1.14)(1.4,1.14)
-\closepath}
-\psline[linecolor=blue](2.4,1.6)(2,2.8)(0.4,2.8)(0.2,1.55)
-\pscustom[fillstyle=solid]{%
-\psline(2,2.8)(0.4,2.8)(0.2,1.55)(-0.2,1.57)(0.2,3.1)(1.932,3.004)
-\closepath}
-\pscustom[fillstyle=solid]{%
-\psline(!dA12 rF 126.87 cos mul add rF rB sub rF 126.87 sin mul add)(2.4,0.4)(2.4,1.6)(4,1.4)(!dA12 rF 80 cos mul add rF rB sub rF 80 sin mul add)
-\psarc(!dA12 rF rB sub){!rF}{80}{126.87}
-\closepath}
-\pscustom[fillstyle=solid]{%
-\psline(3.9,1.43)(3.9,1.8)(3.7,1.8)(3.7,1.4555)
-\closepath}
-\pspolygon[fillstyle=solid,fillcolor=magenta](4,1.8)(3.6,1.8)(3.8,2)
-\psline(2.4,-0.4)(1.7,-0.4)
-\psdiamond[linejoin=1,fillstyle=solid,fillcolor=lightgray,doubleline](2.55,1)(0.12,0.2)
-\rput(3.3,1){\textsf{\textbf{Renault}}}%
-\rput{!phiB}(0,0){% ----------- backwheel --- Hinterrad
-%\pst@backwheel
-\TractorRearWheel
-}%
-\rput{!phiF}(!AF1x AF1y){%----- frontwheel --- Vorderrad
-%\pst@frontwheel
-\TractorFrontWheel
-}%
-}
-
-\def\Segway{% ------------------------------ Vehicle Nr. 4: Segway -----------------------------------
-\rput{!gamma neg}(0,0){%
-\psframe*(-0.6,1)(0.2,4.5)
-\rput{-10}(-0.8,0){\psframe*[framearc=0.6](-0.9,4.3)(0.4,7.4)}
-\pscircle*(0.3,8.2){0.78}
-\psline[linewidth=7pt](1,0.5)(2.1,5.2)
-%% ARM
-\psline[linewidth=12pt](2.1,5.4)(0.6,5.8)(0.2,6.8)
-\pscircle*(2.1,5.4){0.3}
-\pscircle[linecolor=white](2.1,5.4){0.25}
-\psarc[linewidth=5pt](0,0){1.55}{0}{180}
-%% la ROUE
-}%
-\rput{!phiB}(0,0){% ----------- backwheel --- Hinterrad
-\pst@backwheel
-}%
-}%
-
-\def\UniCycle{% ------------------------------ Vehicle UniCycle -----------------------------------
-\rput{!gamma neg}(0,0){%
-\rput{!phiB 180 add}(0,0){%!phiB
-\rput{!phiB 180 add neg}(0,1){\psframe*[linecolor=black!80,framearc=0.15,linestyle=none,linewidth=0pt](-0.25,-0.1)(0.25,0.1)}%!phiB neg
-\pscustom[linecolor=black!80,linewidth=0.015,fillstyle=solid,fillcolor=black!60]{%
-\psarc(0,1){0.11}{0}{180}
-\psbezier(-0.11,0.95)(-0.08,0.8)(-0.08,0.7)
-\lineto(-0.08,0.4)
-\psbezier(-0.08,0.25)(-0.12,0.05)(-0.12,0)
-\psarc(0,0){0.12}{180}{0}
-\psbezier(0.12,0.05)(0.08,0.25)(0.08,0.4)
-\lineto(0.08,0.7)
-\psbezier(0.08,0.8)(0.11,0.95)(0.11,1)
-\closepath
-}%
-\pscircle[linecolor=black!90,linewidth=0.015](0,1){0.09}%
-\pscircle*[linecolor=black](0,1){0.02}
-}
-\rput{!phiB}(0,0){% ----------- backwheel --- Hinterrad
-\pst@backwheel
-}%
-%--- Gabel nach oben und Sattel
-\rput{0}(0,0){%!gamma neg
-\psframe*[linecolor=black!80,framearc=0.1,linestyle=none,linewidth=0pt](-0.085,2.9)(0.085,4)
-\psframe*[linecolor=black!90,framearc=0.1,linestyle=none,linewidth=0pt](-0.1,1.9)(0.1,3)
-\psframe*[linecolor=black,framearc=0.1,linestyle=none,linewidth=0pt](-0.16,2.85)(0.12,3.05)
-\psframe*[linecolor=black!80,framearc=0.15,linestyle=none,linewidth=0pt](-0.12,0)(0.12,2)
-%------------ Sattel ----------------------
-\pspolygon[fillstyle=solid,fillcolor=black!90,linearc=0.1,linestyle=none](-0.7,4)(1,4)(1,4.4)(0.6,4.35)(-0.2,4.35)(-0.7,4.4)
-}%
-%Pedale vorne
-\rput{!phiB}(0,0){%!phiB
-\pscustom[linecolor=black!80,linewidth=0.015,fillstyle=solid,fillcolor=black!60]{%
-\psarc(0,1){0.11}{0}{180}
-\psbezier(-0.11,0.95)(-0.08,0.8)(-0.08,0.7)
-\lineto(-0.08,0.4)
-\psbezier(-0.08,0.25)(-0.12,0.05)(-0.12,0)
-\psarc(0,0){0.12}{180}{0}
-\psbezier(0.12,0.05)(0.08,0.25)(0.08,0.4)
-\lineto(0.08,0.7)
-\psbezier(0.08,0.8)(0.11,0.95)(0.11,1)
-\closepath
-}%
-\rput{!phiB neg}(0,1){\psframe*[linecolor=black!80,framearc=0.15,linestyle=none,linewidth=0pt](-0.25,-0.1)(0.25,0.1)}%!phiB neg
-\pscircle[linecolor=black!60,linewidth=0.015](0,1){0.09}%
-\pscircle*[linecolor=black](0,1){0.02}
-\pscircle[linecolor=black,linewidth=0.015](0,0){0.1}%
-\pscircle*[linecolor=black](0,0){0.02}
-}%
-}%
-}%
-
-\def\SelfDefinedVehicle{% ------------- Vehicle Nr. 5: self defined vehicle -- Eigenes Fahrzeug Nr 5
-\pst@ownvehicle
-\rput{!phiB}(0,0){% ----------- backwheel --- Hinterrad
-\pst@backwheel
-}%
-\rput{!phiF}(!/rB rF def AF1x AF1y){%----- frontwheel --- Vorderrad
-\pst@frontwheel
-}%
-}%
-
-\def\wheelA{%
-\multido{\iA=0+36}{10}{%
-\rput(0,0){\psline[linewidth=2pt](0,0)(!rB \iA\space PtoC)}%
-}%
-\pscircle[linewidth=5pt,dimen=outer](0,0){!rB}%
-\pscircle*(0,0){0.25}%
-}%
-
-\def\wheelB{%
-\multido{\iA=0+36}{10}{%
-\definecolor[ps]{couleurrayons}{hsb}{\iA\space 360 div 1 1 }%
-\rput(0,0){\psline[linecolor=couleurrayons,linewidth=2pt](0,0)(!rB 0.9 mul \iA\space PtoC)}
-}%
-\pscircle[linewidth=5pt,dimen=outer](0,0){!rB}%
-\pscircle*(0,0){0.25}%
-}%
-
-\def\wheelC{%
-\pscircle[fillstyle=solid,fillcolor=gray!20,dimen=outer](0,0){!rB}%
-\multido{\iA=0+36}{10}{%
-\definecolor[ps]{couleurrayons}{hsb}{\iA\space 360 div 1 1 }%
-\rput(0,0){\psline[linecolor=couleurrayons,linewidth=2pt](0,0)(!rB 0.9 mul \iA\space PtoC)}
-}%
-\pscircle[linewidth=15pt,dimen=outer](0,0){!rB}%
-\pscircle*(0,0){0.25}%
-}%
-
-\def\wheelD{%
-\multido{\iA=0+36}{10}{%
-\definecolor[ps]{couleurrayons}{hsb}{\iA\space 360 div 1 1 }%
-\rput(0,0){\psline[linecolor=couleurrayons,linewidth=1pt](0,0)(!rB \iA\space PtoC)}
-}%
-\pscircle[linewidth=1pt,dimen=outer](0,0){!rB}%
-\pscircle*(0,0){0.1}%
-}
-
-\def\arrowWheel{%
-\pscircle*(0,0){!rB}
-\pscircle*[linecolor=white](0,0){0.2}
-\multido{\iA=0+30}{12}{%
-\psline[linecolor=white](0,0)(!rB 0.7 mul \iA\space PtoC)
-}%
-\pscircle[linecolor=white,linewidth=2pt](0,0){!rB 0.7 mul}
-\psline[linecolor=magenta,linewidth=1.5pt]{->}(0,0)(!rB -90 PtoC)
-}%
-
-\def\TruckWheel{%
-\pscircle*(0,0){!rB}
-\pscircle*[linecolor=white](0,0){0.2}
-\multido{\iA=0+30}{12}{%
-\psline[linecolor=white](0,0)(!rB 0.65 mul \iA\space PtoC)
-}%
-\pscircle[linecolor=white,linewidth=2pt](0,0){!rB 0.65 mul}
-}%
-
-\def\segWheel{%
-\pscircle*(0,0){!rB}
-\pscircle*[linecolor=white](0,0){0.2}
-\multido{\iA=0+30}{12}{%
-\psline[linecolor=white](0,0)(!rB 0.9 mul \iA\space PtoC)
-}%
-\pscircle[linecolor=white,linewidth=2pt](0,0){!rB 0.9 mul}
-}%
-
-\def\SpokesWheelCrossed{
-\multido{\iM=0+40,\iJ=60+40}{10}{\psline[linewidth=0.1](!rB 0.16 mul \iM\space PtoC)(!rB \iJ\space PtoC)
- \psline[linewidth=0.1](!rB 0.16 mul \iM\space PtoC)(!rB \iJ\space 10 add PtoC)}
-\pscircle[fillstyle=solid,fillcolor=white,linewidth=0.1]{!rB 0.16 mul 0.2 add}
-\multido{\i=0+40}{9}{\pscircle[linestyle=dashed,linecolor=gray!50](!rB 0.16 mul \i\space PtoC){! 0.1 rB 0.16 mul mul}
- \pscircle*(!rB 0.16 mul \i\space 20 add PtoC){! 0.1 rB 0.16 mul mul}}
-\multido{\iM=20+40,\iJ=-30+40}{10}{\psline[linewidth=0.1](!rB 0.16 mul \iM\space PtoC)(!rB \iJ\space PtoC)
- \psline[linewidth=0.1](!rB 0.16 mul \iM\space PtoC)(!rB \iJ\space 10 sub PtoC)}
-\pscircle[dimen=outer,linewidth=0.5,linecolor=black!90]{!rB}%
-\pscircle[dimen=outer,linewidth=0.1,linecolor=white]{!rB 0.3 sub}%
-}
-
-\def\SpokesWheelA{
-\multido{\iM=0+40,\iJ=60+40}{10}{\psline[linewidth=0.025](!rB 0.1 mul \iM\space PtoC)(!rB \iJ\space PtoC)
- \psline[linewidth=0.025](!rB 0.1 mul \iM\space PtoC)(!rB \iJ\space 10 add PtoC)}
-\pscircle[fillstyle=solid,fillcolor=white,linewidth=0.025]{!rB 0.1 mul 0.1 add}
-\multido{\i=0+40}{9}{\pscircle[linewidth=0.025,linecolor=gray!50](!rB 0.1 mul \i\space PtoC){! 0.03 rB 0.16 mul mul}
- \pscircle*[linewidth=0.025](!rB 0.1 mul \i\space 20 add PtoC){! 0.03 rB 0.16 mul mul}}
-\multido{\iM=20+40,\iJ=-30+40}{10}{\psline[linewidth=0.025](!rB 0.1 mul \iM\space PtoC)(!rB \iJ\space PtoC)
- \psline[linewidth=0.025](!rB 0.1 mul \iM\space PtoC)(!rB \iJ\space 10 sub PtoC)}
-\pscircle[dimen=outer,linewidth=0.2,linecolor=black!90]{!rB}%
-\pscircle[dimen=outer,linewidth=0.02,linecolor=white]{!rB 0.15 sub}%
-}
-
-\def\SpokesWheelB{
-\multido{\iM=0+40,\iJ=60+40}{10}{\psline[linewidth=0.015,linecolor=black!80](!rB 0.11 mul \iM\space PtoC)(!rB \iJ\space PtoC)
- \psline[linewidth=0.015,linecolor=black!80](!rB 0.11 mul \iM\space PtoC)(!rB \iJ\space 10 add PtoC)}
-\pscircle[fillstyle=solid,fillcolor=white,linewidth=0.025,linecolor=black!80]{!rB 0.11 mul 0.06 add}
-\multido{\i=0+40}{9}{\pscircle[linewidth=0.01,linecolor=black!50](!rB 0.11 mul \i\space PtoC){! 0.09 rB 0.16 mul mul}
- \pscircle*[linewidth=0.01,linecolor=black](!rB 0.11 mul \i\space 20 add PtoC){! 0.09 rB 0.16 mul mul}}
-\multido{\iM=20+40,\iJ=-30+40}{10}{\psline[linewidth=0.015,linecolor=black!80](!rB 0.11 mul \iM\space PtoC)(!rB \iJ\space PtoC)
- \psline[linewidth=0.015,linecolor=black!80](!rB 0.11 mul \iM\space PtoC)(!rB \iJ\space 10 sub PtoC)}
-\psline[linewidth=0.04,linecolor=black!90](!rB 0.3 sub -85 PtoC)(!rB 0.4 sub -85 PtoC)%
-\psline[linewidth=0.048,linecolor=black!90](!rB 0.4 sub -85 PtoC)(!rB 0.44 sub -85 PtoC)%
-\pscircle[dimen=outer,linewidth=0.3,linecolor=black!90]{!rB}%
-\pscircle[dimen=outer,linewidth=0.09,linecolor=gray!20]{!rB 0.18 sub}%
-}
-
-\def\TractorFrontWheel{%
-\pscircle*(0,0){0.25}%
-% 0.5=rF/2 0.2=rF/5
-\pscircle[linewidth=0.5,dimen=outer](0,0){!rF}
-\multido{\iA=0+36}{10}{%
-\psline[linewidth=2pt,linecolor=red](0,0)(!rF 2 div \iA\space PtoC)(!rF \iA\space PtoC)}%
-\pscircle[dimen=outer,linewidth=0.3,linecolor={[rgb]{0.95 0.95 0}}](0,0){!rF 2 div}
-\pscircle(0,0){!rF 5 div}
-\multido{\iA=0+36}{10}{%
-\psline[linewidth=2pt](0,0)(!rF 2 div \iA\space PtoC)}%
-}%
-\def\TractorRearWheel{%
-\pscircle*(0,0){0.25}%
-% 0.7=rB/2 0.28=rb/5
-\pscircle[linewidth=0.7,dimen=outer](0,0){!rB}
-\multido{\iA=0+36}{10}{%
-\psline[linewidth=2pt,linecolor=red](0,0)(!rB 2 div \iA\space PtoC)(!rB \iA\space PtoC)}%
-\pscircle[dimen=outer,linewidth=0.42,linecolor={[rgb]{0.95 0.95 0}}](0,0){!rB 2 div}
-\pscircle(0,0){!rB 5 div}
-\multido{\iA=0+36}{10}{%
-\psline[linewidth=2pt](0,0)(!rB 2 div \iA\space PtoC)}%
-}% \ No newline at end of file
diff --git a/Master/texmf-dist/doc/generic/pst-vehicle/README.md b/Master/texmf-dist/doc/generic/pst-vehicle/README.md
index a0d88352299..2497a64a469 100644
--- a/Master/texmf-dist/doc/generic/pst-vehicle/README.md
+++ b/Master/texmf-dist/doc/generic/pst-vehicle/README.md
@@ -1,10 +1,9 @@
-The pst-vehicle package
-Author: J. Gilg, M. Luque, T. Söll
-Dated: 2017/06/01
+The pst-vehicle package Author: J. Gilg, M. Luque, T. Söll
+
+Dated: 2017/06/05 Version 1.1
pst-vehicle contains the following:
1) pst-vehicle Package.
-
-T. Söll \ No newline at end of file
+T. Söll
diff --git a/Master/texmf-dist/doc/generic/pst-vehicle/pst-vehicle-doc-fr.pdf b/Master/texmf-dist/doc/generic/pst-vehicle/pst-vehicle-doc-fr.pdf
new file mode 100644
index 00000000000..71c3c513b99
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-vehicle/pst-vehicle-doc-fr.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pst-vehicle/pst-vehicle-doc-fr.tex b/Master/texmf-dist/doc/generic/pst-vehicle/pst-vehicle-doc-fr.tex
new file mode 100644
index 00000000000..9557ef3c694
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-vehicle/pst-vehicle-doc-fr.tex
@@ -0,0 +1,938 @@
+%% $Id: pst-pers-doc.tex 2017-04-05 J\"{u}rgen, Thomas $
+\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,fleqn,
+ smallheadings, headexclude,footexclude,oneside,dvipsnames,svgnames,x11names]{pst-doc}
+%\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,smallheadings
+% headexclude,footexclude,oneside,dvipsnames,svgnames,distiller]{pst-doc}
+\usepackage[utf8]{inputenc}
+\listfiles
+\usepackage[autostyle]{csquotes}
+\usepackage{biblatex}%\usepackage[style=dtk]{biblatex}
+\addbibresource{pst-vehicle-doc.bib}
+\usepackage[utf8]{inputenc}
+%\let\pstpersFV\fileversion
+\usepackage[e]{esvect} % f\"{u}r sch\"{o}nere Vektorpfeile
+\usepackage{pst-vehicle,pst-eucl,pstricks-add,animate}
+\let\belowcaptionskip\abovecaptionskip
+
+\usepackage{etex} % um die Anzahl der Register zu erh\"{o}hen (sonst nur 256)
+
+
+\newcommand{\qrq}{\ensuremath{\quad \Rightarrow \quad}}
+\newcommand{\envert}[1]{\left\lvert#1\right\rvert}
+\let\abs=\envert
+\newcommand{\BM}[1]{\ensuremath{\text{\boldmath $#1$\unboldmath}}}
+\newcommand{\Anf}[1]{\glqq{}#1\grqq{}}
+
+\def\bgImage{%
+\begin{pspicture}(0,0)(14,8)
+\def\FuncA{0.5*cos(1.5*x)+0.25*x}
+\psplot[plotpoints=500]{0}{16}{\FuncA}
+\psVehicle[vehicle=\HighWheeler,showSlope=false,linecolor=Gold]{0.35}{1.2}{\FuncA}%
+\psVehicle[vehicle=\Bike,style=bike,showSlope=false,linecolor=green!70]{0.5}{6}{\FuncA}%
+\psVehicle[vehicle=\Truck,style=truck,showSlope=false]{0.35}{12.2}{\FuncA}%
+\end{pspicture}
+}
+
+\lstset{language=PSTricks,morekeywords={psVehicle}\footnotesize\ttfamily}
+%
+\psset{labelFontSize=\scriptstyle}% for mathmode
+\psset{algebraic=true}
+\newpsstyle{quadrillage}{subgriddiv=2,gridlabels=5pt,gridwidth=0.3pt,gridcolor=black!50,subgridwidth=0.2pt,subgridcolor=black}
+
+\newcommand{\Epkt}[3]{\ensuremath{{\text{#1}}\left(\,#2\;\vline\;#3\,\right)}}
+
+\makeatletter
+\def\curveVal{\def\pst@par{}\pst@object{curveVal}}%
+\def\curveVal@i#1#2{\@ifnextchar[%
+{\curveVal@ii{#1}{#2}}%
+{\curveVal@ii{#1}{#2}[1]}}%
+\def\curveVal@ii#1#2[#3]{%
+\pst@killglue%
+\begingroup%
+\use@par%
+\begin@SpecialObj%
+\pst@Verb{%
+ /Pi 3.1415926 def
+ /rpn {tx@AlgToPs begin AlgToPs end cvx} def
+ /x0 #1 def
+ /rW #3 def
+ /func (#2) rpn def
+ /Diff (Derive(1,#2)) rpn def
+ /DiffI (Derive(2,#2)) rpn def
+ /dAB (sqrt(1+Diff^2)) rpn def
+ /dABdiff (Derive(1,sqrt(1+(Derive(1,#2))^2))) rpn def
+ /x x0 def func /funcx0 exch def % ----- f(x0)
+ /x x0 def Diff /Diffx0 exch def % ----- f'(x0)
+ /x x0 def DiffI /DiffIx0 exch def % --- f''(x0)
+ /KWRho {DiffI 1 Diff dup mul add 3 exp sqrt div} def
+ /x x0 def KWRho /KWRhox0 exch def % --- f''(x0)
+ /tA 1 1 Diffx0 dup mul add sqrt div def %
+ /deltax0 tA Diffx0 mul neg KWRhox0 div def
+ /deltay0 tA KWRhox0 div def
+ /deltaxW tA Diffx0 mul neg rW mul def
+ /deltayW tA rW mul def
+ /Rho {1 KWRho div} def
+ /x x0 def Rho abs /Rhox0 exch def
+ /alpha deltax0 deltay0 atan def
+ /beta Diffx0 1 atan def
+ /tex beta cos def
+ /tey beta sin def
+ /gamma 90 beta add def
+ /nex gamma cos def
+ /ney gamma sin def
+}%
+\pnode(!x0 funcx0){PC}%
+\pnode(!x0 deltaxW 2 mul add funcx0 deltayW 2 mul add){QC}%
+\pnode(!x0 deltax0 add funcx0 deltay0 add){MC}%
+\pnode(!x0 deltaxW add funcx0 deltayW add){MW}%
+\showpointsfalse%
+\end@SpecialObj%
+\endgroup\ignorespaces%
+}%
+\makeatother
+
+
+\begin{document}
+
+\title{pst-vehicle v 1.0}
+%\subtitle{A PSTricks package for slipping/rolling vehicles on curves of any kind of mathematical functions}
+\subtitle{Un package PSTricks pour faire rouler sans glisser des v\'{e}hicules sur des courbes d\'{e}finies par une fonction math\'{e}matique}
+\author{Thomas \textsc{S\"{o}ll}\\
+avec la collaboration de\\
+J\"{u}rgen \textsc{Gilg} et Manuel \textsc{Luque}}
+\date{\today}
+
+\maketitle
+
+\tableofcontents
+\psset{unit=1cm}
+
+
+\clearpage
+
+
+\begin{abstract}
+Ce package a \'{e}t\'{e} cr\'{e}\'{e} pour illustrer la notion de pente, le coefficient directeur de la tangente en un point d'une courbe. Sur la route, une c\^{o}te difficile ou une descente dangereuse \`{a} cause de leur d\'{e}clivit\'{e} sont signal\'{e}es par un panneau indiquant la pente de ce tron\c{a}on de route, par exemple 10\%. C'est donc tout naturellement qu'est venue l'id\'{e}e de repr\'{e}senter un v\'{e}hicule roulant sans glissement sur une courbe en y incluant la possibilit\'{e} de visualiser la pente.
+\newline
+Les v\'{e}hicules sont des engins \`{a} 2 roues (tout au moins vus de profil) et \`{a} une roue. Ces engins peuvent rouler sans glissement sur une courbe d\'{e}finie par sa fonction \textit{y=f(x)}.
+Une option permet de tracer la droite joignant les points de contact des roues avec la courbe ou la tangente au point de contact s'il s'agit d'un monocycle.
+Une autre particularit\'{e} est la possibilit\'{e} d'afficher un inclinom\`{e}tre (Slope-o-Meter).
+6 v\'{e}hicules sont pr\'{e}d\'{e}finis, mais peuvent \^{e}tre personnalis\'{e}s par le choix de la couleur ou des roues dont 12 types sont pr\'{e}d\'{e}finies.
+Il est \'{e}galement possible de dessiner son propre v\'{e}hicule.
+\end{abstract}
+\clearpage
+
+\section{\protect\'{E}tude th\'{e}orique du roulement sans glissement, d'une roue sur une courbe}
+Dans cette premi\`{e}re partie, nous \'{e}tablissons les r\'{e}sultats n\'{e}cessaires permettant de d\'{e}terminer suivant la position choisie pour le v\'{e}hicule sur la courbe (l'abscisse du point de contact de roue arri\`{e}re), les \'{e}l\'{e}ments suivants :
+\begin{itemize}
+ \item la position du point de contact de la roue avant ;
+ \item les angles de rotation de chacune des roues depuis l'origine du mouvement.
+\end{itemize}
+Thomas S\"{o}ll a r\'{e}dig\'{e} une th\'{e}orie plus compl\`{e}te sur ce type de mouvement.
+
+\subsection{Les roues ont des rayons \'{e}gaux}
+
+\psset{saveNodeCoors,NodeCoorPrefix=n,algebraic}
+\def\myFunk{2-0.25*x^2}
+\def\abl{Derive(1,\myFunk)}
+\begin{pspicture}(-10,-1)(8,3.5)
+\psplot{-3.8}{3.8}{\myFunk}
+\pnode(*-3 {\myFunk}){A}
+\pnode(*nAx {\abl}){A_St}
+\pnode(*-1 {\myFunk}){B}
+\pnode(*nBx {\abl}){B_St}
+\psdot(A)
+\psdot(B)
+\uput*[-90](A){\small$\Epkt{}{x_0}{f(x_0)}$}
+\uput*[-90](B){\small$\Epkt{}{x}{f(x)}$}
+
+\pnode(!nAx nA_Sty 1 nA_Sty dup mul add sqrt div sub nAy 1 1 nA_Sty dup mul add sqrt div add){H}
+\pnode(!nBx nB_Sty 1 nB_Sty dup mul add sqrt div sub nBy 1 1 nB_Sty dup mul add sqrt div add){V}
+\psdot[linecolor=red](H)
+\psdot[linecolor=red](V)
+\pscircle[dimen=outer,linecolor=gray](H){1}
+\pscircle[dimen=outer,linecolor=gray](V){1}
+
+\pcline[linecolor=red](H)(V)\naput*{$R$}
+\pcline[linecolor=blue](H)(A)\naput{$r$}
+\pcline[linecolor=blue](V)(B)\naput{$r$}
+
+\psplotTangent[linestyle=dashed,linecolor=Green]{nAx}{1.5}{\myFunk}
+\psplotTangent[linestyle=dashed,linecolor=Green]{nBx}{1.5}{\myFunk}
+\end{pspicture}
+
+Soit $x_0$ l'abscisse du point de contact de la roue arri\`{e}re (de rayon $r$) avec la courbe :
+\begin{equation*}
+\vec{x}_0=
+\begin{pmatrix}
+x_0\\
+f(x_0)
+\end{pmatrix}
+\end{equation*}
+La tangente en ce point a pour vecteur directeur :
+\begin{equation*}
+\vec{t}_0=
+\begin{pmatrix}
+1\\
+f'(x_0)
+\end{pmatrix}
+\end{equation*}
+Le vecteur unitaire normal en $x_0$ s'\'{e}crit :
+\begin{equation*}
+\vec{n}_{0x_0}=\frac{1}{\sqrt{1+f'(x_0)^2}}
+\begin{pmatrix}
+-f'(x_0)\\
+1
+\end{pmatrix}
+\end{equation*}
+Appelons $H$ l'axe de la roue arri\`{e}re, son vecteur position a pour coordonn\'{e}es :
+\begin{align*}
+\overrightarrow{OH}&=\vec{x}_0+r\cdot \vec{n}_{0x_0}\\
+&=\begin{pmatrix}
+x_0-r\frac{f'(x_0)}{\sqrt{1+f'(x_0)^2}}\\
+f(x_0)+r\frac{1}{\sqrt{1+f'(x_0)^2}}
+\end{pmatrix}
+\end{align*}
+$x$ est l'abscisse du point de contact de la roue avant avec la courbe.
+Le vecteur unitaire normal en ce point est :
+\begin{equation*}
+\vec{n}_{0x}=\frac{1}{\sqrt{1+f'(x)^2}}
+\begin{pmatrix}
+-f'(x)\\
+1
+\end{pmatrix}
+\end{equation*}
+Soit $V$ l'axe de la roue avant, son vecteur position a pour coordonn\'{e}es :
+\begin{align*}
+\overrightarrow{OV}&=\vec{x}+r\cdot \vec{n}_{0x}\\
+&=\begin{pmatrix}
+x-r\frac{f'(x)}{\sqrt{1+f'(x)^2}}\\
+f(x)+r\frac{1}{\sqrt{1+f'(x)^2}}
+\end{pmatrix}
+\end{align*}
+Si $R$ est la distance entre les 2 axes :
+\begin{align*}
+|\overrightarrow{OV}-\overrightarrow{OH}|&=R\\
+\left|
+\begin{pmatrix}
+x-r\frac{f'(x)}{\sqrt{1+f'(x)^2}}-\left(x_0-r\frac{f'(x_0)}{\sqrt{1+f'(x_0)^2}}\right)\\
+f(x)+r\frac{1}{\sqrt{1+f'(x)^2}}-\left(f(x_0)+r\frac{1}{\sqrt{1+f'(x_0)^2}}\right)
+\end{pmatrix}
+\right|&=R\\
+\left|\begin{pmatrix}
+x-x_0+r\left(\frac{f'(x_0)}{\sqrt{1+f'(x_0)^2}}-\frac{f'(x)}{\sqrt{1+f'(x)^2}}\right)\\
+f(x)-f(x_0)+r\left(\frac{1}{\sqrt{1+f'(x)^2}}-\frac{1}{\sqrt{1+f'(x_0)^2}}\right)
+\end{pmatrix}
+\right|&=R
+\end{align*}
+Nous obtenons une \'{e}quation en $x$, o\`{u} $x$ est l'abscisse du point de tangence de la roue avant avec la courbe. La r\'{e}solution de cette \'{e}quation fixera la position de la roue avant.
+\begin{equation*}
+\left(x-x_0+r\left(\frac{f'(x_0)}{\sqrt{1+f'(x_0)^2}}-\frac{f'(x)}{\sqrt{1+f'(x)^2}}\right)\right)^2+\left(f(x)-f(x_0)+r\left(\frac{1}{%
+\sqrt{1+f'(x)^2}}-\frac{1}{\sqrt{1+f'(x_0)^2}}\right)\right)^2=R^2
+\end{equation*}
+
+
+\subsection{Les roues ont des rayons diff\'{e}rents}
+\psset{saveNodeCoors,NodeCoorPrefix=n,algebraic}
+\def\myFunk{2-0.25*x^2}
+\def\abl{Derive(1,\myFunk)}
+\begin{pspicture}(-10,-2)(8,3)
+\psplot{-4}{4}{\myFunk}
+\pnode(*-3 {\myFunk}){A}
+\pnode(*nAx {\abl}){A_St}
+\pnode(*-1 {\myFunk}){B}
+\pnode(*nBx {\abl}){B_St}
+\psdot(A)
+\psdot(B)
+\uput*[-90](A){\small$\Epkt{}{x_0}{f(x_0)}$}
+\uput*[-90](B){\small$\Epkt{}{x}{f(x)}$}
+
+\pnode(!nAx nA_Sty 1 nA_Sty dup mul add sqrt div sub nAy 1 1 nA_Sty dup mul add sqrt div add){H}
+\pnode(!nBx nB_Sty 1 nB_Sty dup mul add sqrt div 0.7 mul sub nBy 1 1 nB_Sty dup mul add sqrt div 0.7 mul add){V}
+\psdot[linecolor=red](H)
+\psdot[linecolor=red](V)
+\pscircle[dimen=outer,linecolor=gray](H){1}
+\pscircle[dimen=outer,linecolor=gray](V){0.7}
+
+\pcline[linecolor=red](H)(V)\naput*{$R$}
+\pcline[linecolor=blue](H)(A)\naput{$r_1$}
+\pcline[linecolor=blue](V)(B)\naput{$r_2$}
+
+\psplotTangent[linestyle=dashed,linecolor=Green]{nAx}{1.5}{\myFunk}
+\psplotTangent[linestyle=dashed,linecolor=Green]{nBx}{1.5}{\myFunk}
+\end{pspicture}
+
+Les coordonn\'{e}es du point de contact de la roue arri\`{e}re de rayon $r_1$ avec la courbe sont :
+\begin{equation*}
+\vec{x}_0=
+\begin{pmatrix}
+x_0\\
+f(x_0)
+\end{pmatrix}
+\end{equation*}
+En ce point, le vecteur directeur de la tangente est :
+\begin{equation*}
+\vec{t}_0=
+\begin{pmatrix}
+1\\
+f'(x_0)
+\end{pmatrix}
+\end{equation*}
+et le vecteur unitaire normal :
+\begin{equation*}
+\vec{n}_{0x_0}=\frac{1}{\sqrt{1+f'(x_0)^2}}
+\begin{pmatrix}
+-f'(x_0)\\
+1
+\end{pmatrix}
+\end{equation*}
+Le vecteur position du point $H$ (axe de la roue arri\`{e}re) a pour coordonn\'{e}es :
+\begin{align*}
+\overrightarrow{OH}&=\vec{x}_0+r_1\cdot \vec{n}_{0x_0}\\
+&=\begin{pmatrix}
+x_0-r_1\frac{f'(x_0)}{\sqrt{1+f'(x_0)^2}}\\
+f(x_0)+r_1\frac{1}{\sqrt{1+f'(x_0)^2}}
+\end{pmatrix}
+\end{align*}
+$x$ est l'abscisse du point de contact de la roue avant avec la courbe.
+Le vecteur unitaire normal en ce point est :
+\begin{equation*}
+\vec{n}_{0x}=\frac{1}{\sqrt{1+f'(x)^2}}
+\begin{pmatrix}
+-f'(x)\\
+1
+\end{pmatrix}
+\end{equation*}
+$r_2$ est le rayon de la roue avant, les coordonn\'{e}es du point $V$ (axe de la roue avant) sont :
+\begin{align*}
+\overrightarrow{OV}&=\vec{x}+r_2\cdot \vec{n}_{0x}\\
+&=\begin{pmatrix}
+x-r_2\frac{f'(x)}{\sqrt{1+f'(x)^2}}\\
+f(x)+r_2\frac{1}{\sqrt{1+f'(x)^2}}
+\end{pmatrix}
+\end{align*}
+la distance entre les 2 axes vaut $R$, on en d\'{e}duit :
+\begin{align*}
+|\overrightarrow{OV}-\overrightarrow{OH}|&=R\\
+\left|
+\begin{pmatrix}
+x-r_2\frac{f'(x)}{\sqrt{1+f'(x)^2}}-\left(x_0-r_1\frac{f'(x_0)}{\sqrt{1+f'(x_0)^2}}\right)\\
+f(x)+r_2\frac{1}{\sqrt{1+f'(x)^2}}-\left(f(x_0)+r_2\frac{1}{\sqrt{1+f'(x_0)^2}}\right)
+\end{pmatrix}
+\right|&=R\\
+\end{align*}
+Nous obtenons une \'{e}quation en $x$, o\`{u} $x$ est l'abscisse du point de tangence de la roue avant avec la courbe.
+\begin{equation*}
+\left(x-x_0+r_1\frac{f'(x_0)}{\sqrt{1+f'(x_0)^2}}-r_2\frac{f'(x)}{\sqrt{1+f'(x)^2}}\right)^2+
+\left(f(x)-f(x_0)+r_2\frac{1}{\sqrt{1+f'(x)^2}}-r_1\frac{1}{\sqrt{1+f'(x_0)^2}}\right)^2=R^2
+\end{equation*}
+
+\subsection{Angle d'inclinaison de la droite joignant les axes des roues arri\`{e}re et avant}
+
+Les 2 roues sont pos\'{e}es sur le plan horizontal.
+\psset{saveNodeCoors,NodeCoorPrefix=n,algebraic}
+\def\myFunk{0}
+\def\abl{Derive(1,\myFunk)}
+
+\begin{pspicture}(-10,-0.5)(8,4)
+\psplot{-8}{4}{\myFunk}
+\pnode(*-5 {\myFunk}){A}
+\pnode(*nAx {\abl}){A_St}
+\pnode(*1 {\myFunk}){B}
+\pnode(*nBx {\abl}){B_St}
+
+%\uput*[-90](A){\small$\Epkt{}{x_0}{f(x_0)}$}
+%\uput*[-90](B){\small$\Epkt{}{x}{f(x)}$}
+
+\pnode(!nAx nA_Sty 1 nA_Sty dup mul add sqrt div 2 mul sub nAy 1 1 nA_Sty dup mul add sqrt div 2 mul add){H}
+\pnode(!nBx nB_Sty 1 nB_Sty dup mul add sqrt div 1.4 mul sub nBy 1 1 nB_Sty dup mul add sqrt div 1.4 mul add){V}
+\psdot[linecolor=red](H)
+\psdot[linecolor=red](V)
+\uput[90](H){H}
+\uput[90](V){V}
+\pscircle[dimen=outer,linecolor=gray](H){2}
+\pscircle[dimen=outer,linecolor=gray](V){1.4}
+
+\pcline[linecolor=red](H)(V)\naput{$R$}
+\pcline[linecolor=blue](H)(A)\naput{$r_1$}
+\pcline[linecolor=blue](V)(B)\naput{$r_2$}
+
+\pcline[linecolor=gray,linestyle=dashed](H)(!nHx nVy)\nbput{$r_1-r_2$}
+\pcline[linecolor=gray,linestyle=dashed](!nHx nVy)(!nVx nVy)\nbput{$\sqrt{R^2-(r_1-r_2)^2}$}
+
+\pnode(!nHx nVy){X}
+
+\pstMarkAngle[linecolor=red,arrows=->,MarkAngleRadius=4.5,LabelSep=3.6]{H}{V}{X}{\color{red}$\alpha$}
+\end{pspicture}
+:
+L'angle d'inclinaison initial $\alpha$ entre la droite joignant les 2 axes et l'horizontale est:
+\begin{equation*}
+ \alpha=\arctan\left(\frac{r_1-r_2}{\sqrt{R^2-(r_1-r_2)^2}}\right)
+\end{equation*}
+%If the plane is not horizontal, there is an additional angle $\beta$ given by the function $f(x)$:
+Si le plan n'est pas horizontal, il faut ajouter un angle $\beta$ que l'on obtient grâce à la fonction $f(x)$ :
+\psset{saveNodeCoors,NodeCoorPrefix=n,algebraic}
+\def\myFunk{0}
+\def\abl{Derive(1,\myFunk)}
+\begin{pspicture}(-10,0)(8,5.5)
+\rput{-20}{
+\psplot{-8}{4}{\myFunk}
+\pnode(*-5 {\myFunk}){A}
+\pnode(*nAx {\abl}){A_St}
+\pnode(*1 {\myFunk}){B}
+\pnode(*nBx {\abl}){B_St}
+\psdot(A)
+\psdot(B)
+\uput*[-90](A){\small$\Epkt{}{x_0}{f(x_0)}$}
+\uput*[-90](B){\small$\Epkt{}{x}{f(x)}$}
+
+\pnode(!nAx nA_Sty 1 nA_Sty dup mul add sqrt div 2 mul sub nAy 1 1 nA_Sty dup mul add sqrt div 2 mul add){H}
+\pnode(!nBx nB_Sty 1 nB_Sty dup mul add sqrt div 1.4 mul sub nBy 1 1 nB_Sty dup mul add sqrt div 1.4 mul add){V}
+\psdot[linecolor=red](H)
+\psdot[linecolor=red](V)
+\uput[90](H){H}
+\uput[90](V){V}
+\pscircle[dimen=outer,linecolor=gray](H){2}
+\pscircle[dimen=outer,linecolor=gray](V){1.4}
+
+\pcline[linecolor=red](H)(V)\naput{$R$}
+\pcline[linecolor=blue](H)(A)\naput{$r_1$}
+\pcline[linecolor=blue](V)(B)\naput{$r_2$}
+
+\pcline[linecolor=gray,linestyle=dashed](H)(!nHx nVy)\nbput{$r_1-r_2$}
+\pcline[linecolor=gray,linestyle=dashed](!nHx nVy)(!nVx nVy)\nbput{$\sqrt{R^2-(r_1-r_2)^2}$}
+
+\pnode(!nHx nVy){X}
+
+\pstMarkAngle[linecolor=red,arrows=->,MarkAngleRadius=4.5,LabelSep=3.6]{H}{V}{X}{\color{red}$\alpha$}
+}
+
+\rput(H){%
+\pcline[linestyle=dashed](0,0)(5.5,0)\naput{$x_V-x_H$}
+\pcline[linestyle=dashed](5.5,0)(V)\naput{$y_V-y_H$}
+}
+\uput{1cm}[-13](H){\color{blue}$\beta$}
+\end{pspicture}
+
+Les coordonn\'{e}es de l'axe $V$ de la roue avant sont :
+\begin{equation*}
+\overrightarrow{OV}=\vec{x}+r_2\cdot \vec{n}_{0x}
+=\begin{pmatrix}
+x-r_2\frac{f'(x)}{\sqrt{1+f'(x)^2}}\\
+f(x)+r_2\frac{1}{\sqrt{1+f'(x)^2}}
+\end{pmatrix}
+=\begin{pmatrix}
+x_V\\y_V
+\end{pmatrix}
+\end{equation*}
+Celles du point $H$ axe de la roue avant :
+\begin{equation*}
+\overrightarrow{OH}=\vec{x}_0+r_1\cdot \vec{n}_{0x_0}
+=\begin{pmatrix}
+x_0-r_1\frac{f'(x_0)}{\sqrt{1+f'(x_0)^2}}\\
+f(x_0)+r_1\frac{1}{\sqrt{1+f'(x_0)^2}}
+\end{pmatrix}
+=\begin{pmatrix}
+x_H\\y_H
+\end{pmatrix}
+\end{equation*}
+L'angle $\beta$ vaut :
+\begin{equation*}
+\beta=\arctan\left(\frac{y_V-y_H}{x_V-x_H}\right)
+\end{equation*}
+On obtient ainsi l'angle total $\gamma$
+\begin{equation*}
+ \gamma=-(\alpha+\beta)
+\end{equation*}
+
+\subsection{D\'{e}termination du rayon de courbure}
+Une courbe peut être imagin\'{e}e comme une suite de nombreux petits arcs circulaires. Le rayon des cercles associ\'{e}s respectifs est appel\'{e} rayon de courbure. Plus la courbure d'une courbe est accentu\'{e}e, plus les intervalles doivent être choisis petits afin de pouvoir les assimiler avec la meilleure approximation possible à des arcs de cercle.
+
+Pour trouver le rayon d'un tel arc et donc le rayon de la courbure de la courbe au point $x_{0}$, la normale en $x_{0}$ devrait couper la normale en $x_ {0} + \epsilon $. Ceci donne la valeur $x$ du centre du cercle de courbure M de la courbe. Le dessin suivant illustre cette notion.
+
+\begin{pspicture}[showgrid=false,shift=0,saveNodeCoors,NodeCoorPrefix=n](0,-0.6)(18,9.2)
+\def\funkg{0.4*(x-3)*sin(0.2*(x-5))}
+\curveVal{5}{\funkg}[5]
+
+\psplot[algebraic=true,plotpoints=500,linecolor=black,linewidth=2pt,yMaxValue=25,yMinValue=-15]{0}{18}{\funkg}
+%\psplot[algebraic=false,plotpoints=500,linecolor=red,linewidth=2pt,yMaxValue=25,yMinValue=-15]{0}{18}{Rho}
+\pcline[linewidth=1.5pt,nodesepB=-2.6,linecolor=BrickRed](!x0 funcx0)(!x0 deltax0 add funcx0 deltay0 add)
+\pcline[linewidth=1.5pt,nodesepB=-2.6,linecolor=Green](*{x0 0.5 add} {\funkg})(!x0 deltax0 add funcx0 deltay0 add)
+\psdot[dotsize=5pt](!x0 funcx0)
+\psdot[dotsize=5pt](*{x0 0.5 add} {\funkg})
+\psdot[dotsize=5pt](!x0 deltax0 add funcx0 deltay0 add)
+\uput{0.25}[150]{0}(!x0 deltax0 add funcx0 deltay0 add){M}
+\psarc[linewidth=1.5pt,linestyle=dashed,linecolor=cyan](!x0 deltax0 add funcx0 deltay0 add){!1 KWRhox0 div}{230}{380}
+\pcline[offset=-30pt,tbarsize=20pt,linewidth=1.5pt,linecolor=BrickRed]{|<->|}(!x0 funcx0)(!x0 deltax0 add funcx0 deltay0 add)
+\ncput*{\color{BrickRed}$\rho$}
+%\pcline[offset=20pt,tbarsize=20pt,linewidth=1.5pt]{|<->|}(!x0 deltax0 add funcx0)(!x0 deltax0 add funcx0 deltay0 add)
+%\ncput*{$\Delta y_{m}$}
+\pcline[linecolor=orange,linewidth=1.2pt]{<->}(!x0 deltax0 add funcx0)(!x0 deltax0 add funcx0 deltay0 add)
+\naput[nrot=:U]{\color{orange}$\Delta y_{m}$}
+\pcline[linecolor=orange,linewidth=1.2pt]{<->}(!x0 deltax0 add funcx0)(!x0 funcx0)
+\nbput[nrot=:U]{\color{orange}$\Delta x_{m}$}
+\end{pspicture}
+
+\makebox[7cm][l]{\textbf{Normale en \BM{x_{0}}:}} $ n(x)=-\frac{1}{f'(x_{0})}\cdot (x-x_{0})+f(x_{0})$
+
+\makebox[7cm][l]{\textbf{Normale en \BM{x_{0}+\epsilon}:}} $ n_{\epsilon}(x)=-\frac{1}{f'(x_{0}+\epsilon)}\cdot (x-x_{0}-\epsilon)+f(x_{0}+\epsilon)$
+
+\makebox[7cm][l]{\textbf{Point d'intersection des normales:}} $n_{\epsilon}(x) - n(x) = 0$
+\begin{alignat*}{2}
+- \frac{x}{f'(x_{0}+\epsilon)} + \frac{x_{0}}{f'(x_{0}+\epsilon)} + \frac{\epsilon}{f'(x_{0}+\epsilon)} + f(x_{0}+\epsilon) + \frac{x}{f'(x_{0})} - \frac{x_{0}}{f'(x_{0})} - f(x_{0}) & = 0&\qquad& \\[4pt]
+\frac{x\cdot \left[f'(x_{0}+\epsilon) - f'(x_{0})\right]}{f'(x_{0}+\epsilon)\cdot f'(x_{0})} - \frac{x_{0}\cdot \left[f'(x_{0}+\epsilon) - f'(x_{0})\right]}{f'(x_{0}+\epsilon)\cdot f'(x_{0})} + \frac{\epsilon}{f'(x_{0}+\epsilon)} + f(x_{0}+\epsilon) - f(x_{0}) & = 0&\qquad& |:\epsilon\\[4pt]
+\frac{x\cdot \frac{f'(x_{0}+\epsilon) - f'(x_{0})}{\epsilon}}{f'(x_{0}+\epsilon)\cdot f'(x_{0})} - \frac{x_{0}\cdot \frac{f'(x_{0}+\epsilon) - f'(x_{0})}{\epsilon}}{f'(x_{0}+\epsilon)\cdot f'(x_{0})} + \frac{1}{f'(x_{0}+\epsilon)} + \frac{f(x_{0}+\epsilon) - f(x_{0})}{\epsilon} & = 0&\qquad&| \lim_{\epsilon\to 0}\\[4pt]
+\frac{x\cdot f''(x_{0})}{f'(x_{0})\cdot f'(x_{0})} - \frac{x_{0}\cdot f''(x_{0})}{f'(x_{0})\cdot f'(x_{0})} + \frac{1}{f'(x_{0})} + f'(x_{0}) & = 0&&
+\end{alignat*}
+En r\'{e}solvant par rapport \`{a} $x$ :
+\begin{equation*}
+ x = x_{0} - \frac{f'(x_{0})}{f''(x_{0})} - \frac{\left[f'(x_{0})\right]^{3}}{f''(x_{0})} = x_{0} + \underbrace{\left[-\frac{f'(x_{0})}{f''(x_{0})}\cdot \left\{ 1 + \left[f'(x_{0})\right]^{2} \right\}\right]}_{\Delta x_{m}}
+\end{equation*}
+Pour le changement correspondant $\Delta y_{m}$ de l'ordonnée $y$, nous multiplions la pente de la normale par $\Delta x_{m}$ :
+\begin{equation*}
+ \Delta y_{m} = -\frac{1}{f'(x_{0})} \cdot \Delta x_{m} =\frac{1}{f''(x_{0})}\cdot \left\{ 1 + \left[f'(x_{0})\right]^{2} \right\}
+\end{equation*}
+Avec le th\'{e}or\`{e}me de Pythagore, on obtient le rayon de courbure :
+\begin{equation*}
+ \rho = \sqrt{(\Delta x_{m})^{2} + (\Delta y_{m})^{2}} = \sqrt{(\Delta x_{m})^{2} + \left[-\frac{1}{f'(x_{0})} \cdot \Delta x_{m}\right]^{2}} = \abs{\frac{\Delta x_{m}}{f'(x_{0})}} \cdot \sqrt{\left[f'(x_{0})\right]^{2} + 1}
+\end{equation*}
+En utilisant $\Delta x_{m} = -\frac{f'(x_{0})}{f''(x_{0})}\cdot \left\{ 1 + \left[f'(x_{0})\right]^{2} \right\}$--- on obtient :
+\begin{equation*}
+ \rho = \abs{\frac{\frac{f'(x_{0})}{f''(x_{0})}\cdot \left\{ 1 + \left[f'(x_{0})\right]^{2} \right\}}{f'(x_{0})}} \cdot \sqrt{\left[f'(x_{0}\right]^{2} + 1} =
+ \frac{\sqrt{\left\{1 + \left[f'(x_{0})\right]^{2}\right\}^{3}}}{\abs{f''(x_{0})}}
+\end{equation*}
+
+
+
+\subsection{Roulement sans glissement}
+
+\begin{pspicture}[showgrid=false,shift=0,saveNodeCoors,NodeCoorPrefix=n](0,-0.8)(18,11)
+\def\funkg{0.4*(x-3)*sin(0.2*(x-5))}
+\curveVal{7}{\funkg}[3]
+%\psplot[algebraic=true,plotpoints=500,linecolor=black,linewidth=2pt,yMaxValue=25,yMinValue=-15]{0}{18}{\funkg}
+\pcline[linewidth=1.5pt,nodesepB=0,linecolor=BrickRed](PC)(MC)
+\psdot[dotsize=5pt](MC)
+\uput{0.2}[40]{0}(MC){M$_{\text{c}}$}
+\psarc[linewidth=1.5pt,linecolor=cyan](MC){!Rhox0}{255}{340}
+\psdot[dotsize=5pt](PC)
+\uput{0.25}[-60]{0}(PC){P}
+\uput{0.25}[60]{0}(QC){Q}
+\uput{0.3}[-100]{0}(MW){M$_{\text{w}}$}
+\pnode([offset=1.3cm]{MC}PC){PCO}
+\pnode([offset=-1.3cm]{PC}MC){MCO}
+\pnode([offset=-1.3cm]{PC}MW){MWO}
+\psline[linewidth=1.5pt](MWO)(MW)
+\psline[linewidth=1.5pt](MCO)(MC)
+\pcline[offset=-5pt,linewidth=1.5pt,linecolor=BrickRed]{<->}(MWO)(MCO)
+\ncput*{\color{BrickRed}$R=\rho - r$}
+\psdot[dotsize=5pt](QC)
+\psdot[dotsize=5pt](MW)
+\pscircle[linewidth=1.5pt](MW){!rW}
+\psarcn[linewidth=1.5pt,linecolor=BrickRed]{->}(MW){!rW 0.5 add}{180}{150}
+\uput{3.65}[165]{0}(MW){$\omega=\dot{\varphi}$}
+%\multido{\iC=0+1}{11}{%
+%\definecolor[ps]{rainbow}{hsb}{0.9 \iC\space 15 div sub 0.95 0.7 }%
+%\rput{!-90 \iC\space 0.5 mul 180 mul Pi div rW div sub alpha sub}(MW){\psline[linewidth=1.5pt,linecolor=rainbow](!rW 0)(!rW 0.2 sub 0)}
+%\rput{!-90 \iC\space 0.5 mul 180 mul Pi div Rhox0 div sub alpha sub}(MC){\psline[linewidth=1.5pt,linecolor=rainbow](!Rhox0 0)(!Rhox0 0.2 add 0)}
+%}
+%%\rput(MW){\psline[linewidth=1.5pt]{->}(0,0)(!tex 4 mul tey 4 mul)}
+\rput{!beta}(MW){\pcline[linewidth=1.2pt,linecolor=BrickRed]{->}(0,0)(2,0)\nbput[npos=0.7]{\color{BrickRed}$\vv{v_{\text{c}}}$}}
+\rput{0}(MC){\uput{!Rho}[-19]{0}(0,0){\color{cyan}G$_{f}$}}
+\rput{-40}(MC){\pnode(!Rho rW sub 0){MWI}}
+\rput{-40}(MC){\pnode(!Rho 0){PCI}}
+\pscircle[linewidth=1.2pt,linecolor=gray,linestyle=dashed](MWI){!rW}
+\psarc[linewidth=1.5pt,linecolor=gray,linestyle=dashed](MC){!Rhox0 rW sub}{290}{330}
+\pcline[linewidth=1pt,nodesepB=0,linecolor=cyan!60,linestyle=dashed](PCI)(MC)
+\pcline[linewidth=1.5pt,nodesepB=0,linecolor=gray,linestyle=dashed](MWI)(MC)
+\psdot[dotsize=5pt,linecolor=gray](MWI)
+\psdot[dotsize=5pt,linecolor=gray](PCI)
+\uput{0.3}[-20]{0}(PCI){$\text{P}'$}
+\uput{0.3}[0]{0}(MWI){$\text{M}_{\text{w}}'$}
+\multido{\iC=0+1}{11}{%
+\definecolor[ps]{rainbow}{hsb}{0.9 \iC\space 15 div sub 1 \iC\space 11 div sub 0.7 }%
+\rput{!-90 \iC\space 0.5 mul 180 mul Pi div rW div sub -50 sub}(MWI){\psline[linewidth=1.5pt,linecolor=rainbow](!rW 0)(!rW 0.2 sub 0)}
+\rput{!-90 \iC\space 0.5 mul 180 mul Pi div Rhox0 div sub -50 sub}(MC){\psline[linewidth=1.5pt,linecolor=rainbow](!Rhox0 0)(!Rhox0 0.2 add 0)}
+}
+%\multido{\iC=0+1}{11}{%
+%\rput{!-90 \iC\space 0.5 mul 180 mul Pi div rW div sub alpha sub 50 gamma sub Rhox0 mul rW div sub}(MWI){\psline[linewidth=1.5pt,linecolor=gray!50](!rW 0)(!rW 0.2 sub 0)}
+%}
+\rput{!beta}(PC){\pcline[linewidth=2pt,linecolor=Green]{->}(0,0)(1.5,0)\nbput[npos=0.7,nrot={!beta neg}]{\color{Green}$\vv{e_{\text{t}}}$}}
+\rput{!gamma}(PC){\pcline[linewidth=2pt,linecolor=Green]{->}(0,0)(1.5,0)\nbput[npos=0.7,nrot={!gamma neg}]{\color{Green}$\vv{e_{\text{n}}}$}}
+\end{pspicture}
+
+La condition de roulement d'une roue sans force de glissement, est que le centre de la roue doit faire une rotation autour du point P. Par cons\'{e}quent, le centre se d\'{e}place avec la vitesse:
+\begin{equation*}
+ \vv{v_{\text{c}}} = r\cdot \dot{\varphi}\cdot \vv{e_{\text{t}}} \qquad \text{avec } \vv{e_{\text{t}}} \text{ le vecteur unitaire tangent }
+\end{equation*}
+Parce que le centre de la roue se d\'{e}place \'{e}galement le long du cercle de centre de M$_{\text {c}}$ et de rayon $\rho - r$ et donc que le point P se d\'{e}place d'une distance $\Delta s $ au point $\text{P}'$ --- les vitesses en M$_\text{w}$ et en P se comportent comme leurs rayons correspondants :
+\begin{equation*}
+ \vv{v_{\text{c}}} = \frac{\rho - r}{\rho}\cdot \frac{\Delta s}{\Delta t} \cdot \vv{e_{\text{t}}} \qquad \text{avec des intervalles tr\`{e}s petits, on a }\quad \frac{\Delta s}{\Delta t} = \dot{s}
+\end{equation*}
+En \'{e}galant les membres de droite des 2 \'{e}quations de la vitesse, on obtient finalement :
+\begin{equation*}
+ r\cdot \dot{\varphi} = \frac{\rho - r}{\rho}\cdot \dot{s} \qrq \frac{\text{d}\varphi}{\text{d}t} = \frac{\rho - r}{\rho \cdot r}\cdot \frac{\text{d}s}{\text{d}t} \qrq \text{d}\varphi = \frac{\rho - r}{\rho \cdot r}\cdot \text{d}s = \frac{\rho - r}{\rho \cdot r}\cdot \sqrt{1+[f'(x)]^{2}} \cdot \text{d}x
+\end{equation*}
+
+
+\section{Les v\'{e}hicules pr\'{e}d\'{e}finis}
+
+
+Ce package contient un certain nombre de v\'{e}hicules pr\'{e}d\'{e}finis, comme \emph{Bike}, \emph{Tractor}, \emph{Highwheeler}, \emph{Truck}, \emph{Segway}, \emph{Unicycle}. Les deux derniers v\'{e}hicules ont un seul axe, les autres 2 axes.
+
+
+Sauf pour les mono-cycles, un v\'{e}hicule est d\'{e}fini par le rayon de chaque roue, [\texttt{rB}] pour la roue arri\`{e}re et [\texttt{rF}] pour la roue avant et la distance [\texttt{d}] entre les axes des deux roues. Leurs valeurs doivent être donn\'{e}es dans les options de la commande \texttt{\textbackslash psVehicle[options]}. Le design d'un v\'{e}hicule, la carrosserie ou le cadre de bicyclette doivent \'{e}videmment être adapt\'{e}s aux dimensions indiqu\'{e}es ci-dessus. Un certain nombre de types de roues ont aussi \'{e}t\'{e} pr\'{e}d\'{e}finies.
+
+Nous avons \'{e}galement configur\'{e} certains \verb+\newpsstyle+ pour chacun des v\'{e}hicules, o\`{u} les dimensions et le choix des roues sont fix\'{e}s.
+\begin{lstlisting}
+\newpsstyle{segway}{rB=1.4,backwheel=\segWheel}%MonoAxis
+\newpsstyle{unicycle}{rB=1.6,backwheel=\SpokesWheelB}%MonoAxis
+\newpsstyle{tractor}{d=4,rB=1.4,rF=1.0}
+\newpsstyle{truck}{backwheel=\TruckWheel,frontwheel=\TruckWheel,d=6.28,rB=1.9,rF=1.9}
+\newpsstyle{bike}{backwheel=\SpokesWheelB,frontwheel=\SpokesWheelB,d=5.8,rB=1.6,rF=1.6}
+\end{lstlisting}
+Voici une liste des v\'{e}hicules qui accompagnent ce package :
+
+
+\subsection{\textbackslash Bike}
+
+\begin{LTXexample}[pos=l,width=4cm]
+\begin{pspicture}(0,0)(4,3)
+\def\FuncA{1*cos(x)+1}
+\psframe*[linecolor=yellow!10](0,0)(4,3)
+\psgrid[style=quadrillage](0,0)(4,3)
+\psplot{0}{4}{\FuncA}
+\psVehicle[vehicle=\Bike,showSlope]{0.25}{1.2}{\FuncA}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\subsection{\textbackslash Tractor}
+
+\begin{LTXexample}[pos=l,width=4cm]
+\begin{pspicture}(-1,4)(3,7)
+\def\funkg{sqrt(-x^2+2*x*10+1)}
+\psframe*[linecolor=yellow!10](-1,4)(3,7)
+\psgrid[style=quadrillage](-1,4)(3,7)
+\psplot[plotpoints=500,algebraic]{0.5}{4}{\funkg}
+\psVehicle[vehicle=\Tractor,showSlope=false]{0.5}{1}{\funkg}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\subsection{\textbackslash HighWheeler}
+
+\begin{LTXexample}[pos=l,width=4cm]
+\begin{pspicture}(0,-1)(4,3)
+\def\FuncA{-0.25*(x-2)^2+0.5}
+\psframe*[linecolor=yellow!10](0,-1)(4,3)
+\psgrid[style=quadrillage](0,-1)(4,3)
+\psplot[yMinValue=0]{0}{4}{\FuncA}
+\psVehicle[vehicle=\HighWheeler]{0.25}{1.2}{\FuncA}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\subsection{\textbackslash Truck}
+
+\begin{LTXexample}[pos=l,width=4cm]
+\begin{pspicture}(0,-1)(4,3)
+\def\FuncA{0.3*1.6^x}
+\psframe*[linecolor=yellow!10](0,-1)(4,3)
+\psgrid[style=quadrillage](0,-1)(4,3)
+\psplot{0}{4}{\FuncA}
+\psVehicle[vehicle=\Truck,style=truck]{0.3}{1.2}{\FuncA}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\subsection{\textbackslash Segway}
+
+\begin{LTXexample}[pos=l,width=4cm]
+\begin{pspicture}(0,-1)(4,4)
+\def\FuncA{(x-3)*sin(0.2*(x-1))+1}
+\psframe*[linecolor=yellow!10](0,-1)(4,4)
+\psgrid[style=quadrillage](0,-1)(4,4)
+\psplot{0}{4}{\FuncA}
+\psVehicle[vehicle=\Segway,style=segway]{0.25}{1.2}{\FuncA}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\subsection{\textbackslash UniCycle}
+
+\begin{LTXexample}[pos=l,width=4cm]
+\begin{pspicture}(0,0)(4,4)
+\def\FuncA{(x-3)*sin(0.2*(x-1))+1}
+\psframe*[linecolor=yellow!10](0,0)(4,4)
+\psgrid[style=quadrillage](0,0)(4,4)
+\psplot{0}{4}{\FuncA}
+\psVehicle[vehicle=\UniCycle,style=unicycle,showSlope=false]{0.5}{2.2}{\FuncA}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+
+\section{Roue pr\'{e}d\'{e}finies}
+Voici les roues pr\'{e}d\'{e}finies pouvant être utilis\'{e}es pour les roues avant ou arri\`{e}re.
+
+
+\subsection{\textbackslash wheelA}
+
+\begin{LTXexample}[pos=l,width=2cm]
+\begin{pspicture}(-1,-1)(1,1)
+\rput(!/rB 1 def 0 0){\wheelA}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\subsection{\textbackslash{}wheelB}
+
+\begin{LTXexample}[pos=l,width=2cm]
+\begin{pspicture}(-1,-1)(1,1)
+\rput(!/rB 1 def 0 0){\wheelB}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\subsection{\textbackslash wheelC}
+
+\begin{LTXexample}[pos=l,width=2cm]
+\begin{pspicture}(-1,-1)(1,1)
+\rput(!/rB 1 def 0 0){\wheelC}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\subsection{\textbackslash wheelD}
+
+\begin{LTXexample}[pos=l,width=2cm]
+\begin{pspicture}(-1,-1)(1,1)
+\rput(!/rB 1 def 0 0){\wheelD}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\subsection{\textbackslash arrowWheel}
+
+\begin{LTXexample}[pos=l,width=2cm]
+\begin{pspicture}(-1,-1)(1,1)
+\rput(!/rB 1 def 0 0){\arrowWheel}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\subsection{\textbackslash TruckWheel}
+
+\begin{LTXexample}[pos=l,width=2cm]
+\begin{pspicture}(-1,-1)(1,1)
+\rput(!/rB 1 def 0 0){\TruckWheel}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\subsection{\textbackslash segWheel}
+
+\begin{LTXexample}[pos=l,width=2cm]
+\begin{pspicture}(-1,-1)(1,1)
+\rput(!/rB 1 def 0 0){\segWheel}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\subsection{\textbackslash SpokesWheelCrossed}
+
+\begin{LTXexample}[pos=l,width=2cm]
+\begin{pspicture}(-1,-1)(1,1)
+\rput(!/rB 1 def 0 0){\SpokesWheelCrossed}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\subsection{\textbackslash SpokesWheelA}
+
+\begin{LTXexample}[pos=l,width=2cm]
+\begin{pspicture}(-1,-1)(1,1)
+\rput(!/rB 1 def 0 0){\SpokesWheelA}
+\end{pspicture}
+\end{LTXexample}
+
+\subsection{\textbackslash SpokesWheelB}
+
+\begin{LTXexample}[pos=l,width=2cm]
+\begin{pspicture}(-1,-1)(1,1)
+\rput(!/rB 1 def 0 0){\SpokesWheelB}
+\end{pspicture}
+\end{LTXexample}
+
+\subsection{\textbackslash TractorFrontWheel}
+
+\begin{LTXexample}[pos=l,width=2cm]
+\begin{pspicture}(-1,-1)(1,1)
+\rput(!/rF 1 def 0 0){\TractorFrontWheel}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\subsection{\textbackslash TractorRearWheel}
+
+\begin{LTXexample}[pos=l,width=2cm]
+\begin{pspicture}(-1,-1)(1,1)
+\rput(!/rB 1 def 0 0){\TractorRearWheel}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\section{Comment utiliser la commande}
+Cette commande s'\'{e}crit :
+\begin{BDef}
+\Lcs{psVehicle}\OptArgs\Largb{scaling factor}\Largb{abscissa back wheel}\Largb{equation function}
+\end{BDef}
+
+\textbf{Note important :} Cette fonction doit être donn\'{e}e en notation alg\'{e}brique en non en RPN.
+
+\LPack{pst-vehicle} contient les options \nxLkeyword{epsilon=}, \nxLkeyword{rB=}, \nxLkeyword{rF=}, \nxLkeyword{d=}, \nxLkeyword{gang=}, \nxLkeyword{vehicle=}, \nxLkeyword{ownvehicle=}, \nxLkeyword{backwheel=}, \nxLkeyword{frontwheel=}, \nxLkeyword{MonoAxis=}, \nxLkeyword{showSlope=} et \nxLkeyword{startPos=}.
+\begin{quote}
+\begin{tabularx}{\linewidth}{ @{} l >{\ttfamily}l X @{} }\toprule
+\emph{Name} & \emph{Default} & \emph{Meaning} \\\midrule
+\Lkeyword{epsilon} & 1e-6 & Incr\'{e}ment\\
+\Lkeyword{rB} & 1.6 & rayon de la roue arri\`{e}re\\
+\Lkeyword{rF} & 1.6 & rayon de la roue avant\\
+\Lkeyword{d} & 5.8 &distance entre les axes de 2 roues\\
+\Lkeyword{gang} & 1 &rapport de transmission entre le p\'{e}dalier et la roue arri\`{e}rel\\
+\Lkeyword{vehicle} & \texttt{\textbackslash Bike} & Bike choisi par d\'{e}faut\\
+\Lkeyword{ownvehicle} & & Utilis\'{e} pour cr\'{e}er un v\'{e}hicule personnalis\'{e}\\
+\Lkeyword{backwheel} & \texttt{\textbackslash wheelA} & wheelA est choisi par d\'{e}faut\\
+\Lkeyword{frontwheel} & \texttt{\textbackslash wheelA} & wheelA est choisi par d\'{e}faut\\
+\Lkeyword{MonoAxis} & false & Si le v\'{e}hicule a un axe\\
+\Lkeyword{showSlope} & true & Affiche la pente du v\'{e}hicule et son signe\\
+\Lkeyword{startPos} & 0 & Synchronise la rotation initiale des roues au point de départ\\
+\bottomrule
+\end{tabularx}
+\end{quote}
+
+
+
+\section{Le Slope-o-Meter}
+
+Un indicateur de pente pour afficher l'angle de la pente de la droite joignant les points de contact du v\'{e}hicule avec la courbe. l'effet est tr\`{e}s spectaculaire dans le cas d'une animations.
+Cette commande poss\`{e}de deux arguments permettant de la personnaliser avec \emph{couleur} et \emph{angle de l'aiguille}.
+
+%\textbf{Note :} Le nom \emph{Slope-o-Meter} n'est pas du tout une d\'{e}nomination officielle, mais nous avons eu beaucoup de plaisir à lui donner ce nom sp\'{e}cial.
+\textbf{Note:} The name \emph{Slope-o-Meter} is not at all an academically correct notation, but we all together had great fun to give it that special name.
+\begin{LTXexample}[pos=l,width=5cm]
+\begin{pspicture}(-2.5,-2.5)(2.5,2.5)
+\pstVerb{/omega 30 def}
+\rput(0,0){\SlopeoMeter{cyan!90}{omega}}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\section{Exemples}
+
+\subsection{V\'{e}hicule pr\'{e}d\'{e}fini avec roues personnalis\'{e}es}
+
+\begin{LTXexample}[pos=l,width=7cm]
+\begin{pspicture}(1,1)(8,6)
+\def\FuncA{0.5*cos(x)+2}
+\psframe*[linecolor=yellow!10](1,1)(8,6)
+\psgrid[style=quadrillage](1,1)(8,6)
+\psplot{1}{8}{\FuncA}
+\psVehicle[vehicle=\Truck,showSlope=false,frontwheel=\wheelC,backwheel=\arrowWheel,rB=1,rF=1]{0.5}{3.2}{\FuncA}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\subsection{Personnaliser ou cr\'{e}er un v\'{e}hicule}
+
+Pour concevoir votre propre v\'{e}hicule, il n'y a que quelques r\`{e}gles à suivre :
+\begin{itemize}
+\item Choisir \nxLkeyword{vehicle=\textbackslash SelfDefinedVehicle}
+\item Vous pouvez choisir les roues pr\'{e}d\'{e}finies ou bien dessiner vos propres roues avec les options \nxLkeyword{backwheel=} and \nxLkeyword{frontwheel=}
+\item \textbf{Note important :} L'axe de la roue arri\`{e}re est plac\'{e} en : \Epkt{O}{0}{0}
+\item La position de la roue avant est calcul\'{e}e automatiquement en fonction de la distance donn\'{e}e entre les deux axes \nxLkeyword{d=}
+\item Dessinez votre v\'{e}hicule comme s'il se trouvait sur un plan horizontal, puis d\'{e}finissez-le et r\'{e}glez-le avec i.\,e. \nxLkeyword{ownwheel=\textbackslash myVeh} comme indiqu\'{e} dans l'exemple ci-dessous.
+\end{itemize}
+\begin{LTXexample}[pos=l,width=5cm]
+\def\myVeh{\psframe*[linecolor=red](-1,-0.25)(5,2)}
+\begin{pspicture}(2,1)(7,4)
+\def\FuncA{0.5*sin(x)+2}
+\psframe*[linecolor=yellow!10](2,1)(7,4)
+\psgrid[style=quadrillage](2,1)(7,4)
+\psplot{2}{7}{\FuncA}
+\psVehicle[vehicle=\SelfDefinedVehicle,ownvehicle=\myVeh,showSlope=false,frontwheel=\wheelA,backwheel=\wheelB,rB=1,rF=1,d=4]{0.5}{3.2}{\FuncA}
+\end{pspicture}
+\end{LTXexample}
+
+Le même type de v\'{e}hicule est choisi celui de l'exemple pr\'{e}c\'{e}dent, mais la roue avant a un rayon plus petit.
+
+\begin{LTXexample}[pos=l,width=5cm]
+\def\myVeh{\psframe*[linecolor=red](-1,-0.25)(5,2)}
+\begin{pspicture}(2,1)(7,4)
+\def\FuncA{0.5*sin(x)+2}
+\psframe*[linecolor=yellow!10](2,1)(7,4)
+\psgrid[style=quadrillage](2,1)(7,4)
+\psplot{2}{7}{\FuncA}
+\psVehicle[vehicle=\SelfDefinedVehicle,ownvehicle=\myVeh,showSlope=false,frontwheel=\wheelA,backwheel=\wheelB,rB=1,rF=0.7,d=4]{0.5}{3.2}{\FuncA}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\section{Animation}
+
+\begin{LTXexample}[pos=t,width=15cm]
+\def\funkg{0.25*(x-3)*sin(0.2*(x-2))-1}
+\begin{animateinline}[controls,palindrome,
+ begin={\begin{pspicture}(-2,-2)(13,3)},
+ end={\end{pspicture}}]{20}% 20 frames/s (velocity of the animation)
+\multiframe{100}{rB=0+0.05}{% number of frames
+\psframe*[linecolor=cyan!20](-2,-2)(13,4)
+\pscustom[fillstyle=solid,fillcolor={[RGB]{174 137 100}},linestyle=none]{
+\psplot[plotpoints=500,algebraic]{-2}{13}{\funkg}
+\psline(13,-2)(-2,-2)
+\closepath}
+\psplot[plotpoints=500,algebraic]{-2}{13}{\funkg}
+\psVehicle[vehicle=\Bike,style=bike,linecolor=DodgerBlue4]{0.4}{\rB}{\funkg}
+\rput(10.5,0.5){\SlopeoMeter{cyan!90}{omega}}
+}
+\end{animateinline}
+\end{LTXexample}
+
+
+\clearpage
+
+\section{Liste des options de \texttt{pst-vehicle}}
+\xkvview{family=pst-vehicle,columns={key,type,default}}
+
+
+\clearpage
+
+
+\nocite{*}
+\bgroup
+\RaggedRight
+\printbibliography
+\egroup
+
+
+\printindex
+\end{document}
+
diff --git a/Master/texmf-dist/doc/generic/pst-vehicle/pst-vehicle-doc.pdf b/Master/texmf-dist/doc/generic/pst-vehicle/pst-vehicle-doc.pdf
index aa77f40d3ca..72b3f32055d 100644
--- a/Master/texmf-dist/doc/generic/pst-vehicle/pst-vehicle-doc.pdf
+++ b/Master/texmf-dist/doc/generic/pst-vehicle/pst-vehicle-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pst-vehicle/pst-vehicle-doc.tex b/Master/texmf-dist/doc/generic/pst-vehicle/pst-vehicle-doc.tex
index f8acf1e1f59..6a04bb3dfad 100644
--- a/Master/texmf-dist/doc/generic/pst-vehicle/pst-vehicle-doc.tex
+++ b/Master/texmf-dist/doc/generic/pst-vehicle/pst-vehicle-doc.tex
@@ -34,6 +34,72 @@
\usepackage{pst-vehicle,pst-eucl,pstricks-add,animate}
\let\belowcaptionskip\abovecaptionskip
+
+\usepackage{etex} % um die Anzahl der Register zu erh\"{o}hen (sonst nur 256)
+
+
+\newcommand{\qrq}{\ensuremath{\quad \Rightarrow \quad}}
+\newcommand{\envert}[1]{\left\lvert#1\right\rvert}
+\let\abs=\envert
+\newcommand{\BM}[1]{\ensuremath{\text{\boldmath $#1$\unboldmath}}}
+\newcommand{\Anf}[1]{\glqq{}#1\grqq{}}
+
+\parindent0pt
+
+\makeatletter
+\def\curveVal{\def\pst@par{}\pst@object{curveVal}}%
+\def\curveVal@i#1#2{\@ifnextchar[%
+{\curveVal@ii{#1}{#2}}%
+{\curveVal@ii{#1}{#2}[1]}}%
+\def\curveVal@ii#1#2[#3]{%
+\pst@killglue%
+\begingroup%
+\use@par%
+\begin@SpecialObj%
+\pst@Verb{%
+ /Pi 3.1415926 def
+ /rpn {tx@AlgToPs begin AlgToPs end cvx} def
+ /x0 #1 def
+ /rW #3 def
+ /func (#2) rpn def
+ /Diff (Derive(1,#2)) rpn def
+ /DiffI (Derive(2,#2)) rpn def
+ /dAB (sqrt(1+Diff^2)) rpn def
+ /dABdiff (Derive(1,sqrt(1+(Derive(1,#2))^2))) rpn def
+ /x x0 def func /funcx0 exch def % ----- f(x0)
+ /x x0 def Diff /Diffx0 exch def % ----- f'(x0)
+ /x x0 def DiffI /DiffIx0 exch def % --- f''(x0)
+ /KWRho {DiffI 1 Diff dup mul add 3 exp sqrt div} def
+ /x x0 def KWRho /KWRhox0 exch def % --- f''(x0)
+ /tA 1 1 Diffx0 dup mul add sqrt div def %
+ /deltax0 tA Diffx0 mul neg KWRhox0 div def
+ /deltay0 tA KWRhox0 div def
+ /deltaxW tA Diffx0 mul neg rW mul def
+ /deltayW tA rW mul def
+ /Rho {1 KWRho div} def
+ /x x0 def Rho abs /Rhox0 exch def
+ /alpha deltax0 deltay0 atan def
+ /beta Diffx0 1 atan def
+ /tex beta cos def
+ /tey beta sin def
+ /gamma 90 beta add def
+ /nex gamma cos def
+ /ney gamma sin def
+}%
+\pnode(!x0 funcx0){PC}%
+\pnode(!x0 deltaxW 2 mul add funcx0 deltayW 2 mul add){QC}%
+\pnode(!x0 deltax0 add funcx0 deltay0 add){MC}%
+\pnode(!x0 deltaxW add funcx0 deltayW add){MW}%
+\showpointsfalse%
+\end@SpecialObj%
+\endgroup\ignorespaces%
+}%
+\makeatother
+%3 \cdot f' \cdot (f'')^2 - (f')^2 \cdot f''' - f''' = 0 Stellen maximaler Kr\"{u}mmung!
+
+\psset{arrowlength=2.8,arrowinset=0.1}
+
+
\def\bgImage{%
\begin{pspicture}(0,0)(14,8)
\def\FuncA{0.5*cos(1.5*x)+0.25*x}
@@ -56,7 +122,7 @@
\begin{document}
-\title{pst-vehicle v 1.0}
+\title{pst-vehicle v 1.1}
\subtitle{A PSTricks package for slipping/rolling vehicles on curves of any kind of mathematical functions}
\author{Thomas \textsc{S\"{o}ll}\\
avec la collaboration de\\
@@ -418,27 +484,133 @@ The total angle $\gamma$ is:
-\subsection{Rolling without slipping}
+\subsection{Determination of the curvature radius}
+
+A curved curve can be imagined from many small circular arcs. The radius of the respective associated circles is referred to as the radius of curvature. The stronger the curvature of a curve changes, the smaller the intervals have to be chosen in order to be able to speak approximately of a circular arc.
+
+To find the radius of such an arc and thus the radius of the curvature of the curve at a point $x_{0}$, the normal in $ x_{0} $ should be intersected with the normal in $x_{0}+\epsilon$. This yields the $x$ value of the center of the curvature circle M of the curve. The following drawing is intended to illustrate this.
+
+\begin{pspicture}[showgrid=false,shift=0,saveNodeCoors,NodeCoorPrefix=n](0,-0.6)(18,9.2)
+\def\funkg{0.4*(x-3)*sin(0.2*(x-5))}
+\curveVal{5}{\funkg}[5]
+
+\psplot[algebraic=true,plotpoints=500,linecolor=black,linewidth=2pt,yMaxValue=25,yMinValue=-15]{0}{18}{\funkg}
+%\psplot[algebraic=false,plotpoints=500,linecolor=red,linewidth=2pt,yMaxValue=25,yMinValue=-15]{0}{18}{Rho}
+\pcline[linewidth=1.5pt,nodesepB=-2.6,linecolor=BrickRed](!x0 funcx0)(!x0 deltax0 add funcx0 deltay0 add)
+\pcline[linewidth=1.5pt,nodesepB=-2.6,linecolor=Green](*{x0 0.5 add} {\funkg})(!x0 deltax0 add funcx0 deltay0 add)
+\psdot[dotsize=5pt](!x0 funcx0)
+\psdot[dotsize=5pt](*{x0 0.5 add} {\funkg})
+\psdot[dotsize=5pt](!x0 deltax0 add funcx0 deltay0 add)
+\uput{0.25}[150]{0}(!x0 deltax0 add funcx0 deltay0 add){M}
+\psarc[linewidth=1.5pt,linestyle=dashed,linecolor=cyan](!x0 deltax0 add funcx0 deltay0 add){!1 KWRhox0 div}{230}{380}
+\pcline[offset=-30pt,tbarsize=20pt,linewidth=1.5pt,linecolor=BrickRed]{|<->|}(!x0 funcx0)(!x0 deltax0 add funcx0 deltay0 add)
+\ncput*{\color{BrickRed}$\rho$}
+%\pcline[offset=20pt,tbarsize=20pt,linewidth=1.5pt]{|<->|}(!x0 deltax0 add funcx0)(!x0 deltax0 add funcx0 deltay0 add)
+%\ncput*{$\Delta y_{m}$}
+\pcline[linecolor=orange,linewidth=1.2pt]{<->}(!x0 deltax0 add funcx0)(!x0 deltax0 add funcx0 deltay0 add)
+\naput[nrot=:U]{\color{orange}$\Delta y_{m}$}
+\pcline[linecolor=orange,linewidth=1.2pt]{<->}(!x0 deltax0 add funcx0)(!x0 funcx0)
+\nbput[nrot=:U]{\color{orange}$\Delta x_{m}$}
+\end{pspicture}
-\textbf{Important note:} There is a limitation for the radii. The radii $r$ of the wheels of the vehicle need to be smaller than the minimal curvature radius $\varrho$ of the given curve.
+\makebox[7cm][l]{\textbf{Normal in \BM{x_{0}}:}} $ n(x)=-\frac{1}{f'(x_{0})}\cdot (x-x_{0})+f(x_{0})$
-At points of inflection, the curvature radius is $\infty$. The curvature radius $\varrho$ is calculated with the following formula:
+\makebox[7cm][l]{\textbf{Normal in \BM{x_{0}+\epsilon}:}} $ n_{\epsilon}(x)=-\frac{1}{f'(x_{0}+\epsilon)}\cdot (x-x_{0}-\epsilon)+f(x_{0}+\epsilon)$
+
+\makebox[7cm][l]{\textbf{Intersection point of the normals:}} $n_{\epsilon}(x) - n(x) = 0$
+\begin{alignat*}{2}
+- \frac{x}{f'(x_{0}+\epsilon)} + \frac{x_{0}}{f'(x_{0}+\epsilon)} + \frac{\epsilon}{f'(x_{0}+\epsilon)} + f(x_{0}+\epsilon) + \frac{x}{f'(x_{0})} - \frac{x_{0}}{f'(x_{0})} - f(x_{0}) & = 0&\qquad& \\[4pt]
+\frac{x\cdot \left[f'(x_{0}+\epsilon) - f'(x_{0})\right]}{f'(x_{0}+\epsilon)\cdot f'(x_{0})} - \frac{x_{0}\cdot \left[f'(x_{0}+\epsilon) - f'(x_{0})\right]}{f'(x_{0}+\epsilon)\cdot f'(x_{0})} + \frac{\epsilon}{f'(x_{0}+\epsilon)} + f(x_{0}+\epsilon) - f(x_{0}) & = 0&\qquad& |:\epsilon\\[4pt]
+\frac{x\cdot \frac{f'(x_{0}+\epsilon) - f'(x_{0})}{\epsilon}}{f'(x_{0}+\epsilon)\cdot f'(x_{0})} - \frac{x_{0}\cdot \frac{f'(x_{0}+\epsilon) - f'(x_{0})}{\epsilon}}{f'(x_{0}+\epsilon)\cdot f'(x_{0})} + \frac{1}{f'(x_{0}+\epsilon)} + \frac{f(x_{0}+\epsilon) - f(x_{0})}{\epsilon} & = 0&\qquad&| \lim_{\epsilon\to 0}\\[4pt]
+\frac{x\cdot f''(x_{0})}{f'(x_{0})\cdot f'(x_{0})} - \frac{x_{0}\cdot f''(x_{0})}{f'(x_{0})\cdot f'(x_{0})} + \frac{1}{f'(x_{0})} + f'(x_{0}) & = 0&&
+\end{alignat*}
+Solving for $x$:
+\begin{equation*}
+ x = x_{0} - \frac{f'(x_{0})}{f''(x_{0})} - \frac{\left[f'(x_{0})\right]^{3}}{f''(x_{0})} = x_{0} + \underbrace{\left[-\frac{f'(x_{0})}{f''(x_{0})}\cdot \left\{ 1 + \left[f'(x_{0})\right]^{2} \right\}\right]}_{\Delta x_{m}}
+\end{equation*}
+For the corresponding change $\Delta y_{m}$ of the ordinate $y$, we multiply the slope of the normal with $\Delta x_{m}$:
+\begin{equation*}
+ \Delta y_{m} = -\frac{1}{f'(x_{0})} \cdot \Delta x_{m} =\frac{1}{f''(x_{0})}\cdot \left\{ 1 + \left[f'(x_{0})\right]^{2} \right\}
+\end{equation*}
+With the Pythagorean theorem we get for the curvature radius:
\begin{equation*}
-\varrho=\frac{\sqrt{(1+f'(x)^2)^3}}{f''(x)}
+ \rho = \sqrt{(\Delta x_{m})^{2} + (\Delta y_{m})^{2}} = \sqrt{(\Delta x_{m})^{2} + \left[-\frac{1}{f'(x_{0})} \cdot \Delta x_{m}\right]^{2}} = \abs{\frac{\Delta x_{m}}{f'(x_{0})}} \cdot \sqrt{\left[f'(x_{0})\right]^{2} + 1}
\end{equation*}
-The condition for \emph{rolling without slipping} is
+Using $\Delta x_{m} = -\frac{f'(x_{0})}{f''(x_{0})}\cdot \left\{ 1 + \left[f'(x_{0})\right]^{2} \right\}$--- this leads to:
\begin{equation*}
-\omega=\left(\frac{1}{r}-\frac{1}{\varrho}\right)\cdot \dot{s},
+ \rho = \abs{\frac{\frac{f'(x_{0})}{f''(x_{0})}\cdot \left\{ 1 + \left[f'(x_{0})\right]^{2} \right\}}{f'(x_{0})}} \cdot \sqrt{\left[f'(x_{0}\right]^{2} + 1} =
+ \frac{\sqrt{\left\{1 + \left[f'(x_{0})\right]^{2}\right\}^{3}}}{\abs{f''(x_{0})}}
\end{equation*}
-where $s$ is the length along the curve of the function $f$.
-With
+
+
+\subsection{Rolling without slipping}
+
+\begin{pspicture}[showgrid=false,shift=0,saveNodeCoors,NodeCoorPrefix=n](0,-0.8)(18,11)
+\def\funkg{0.4*(x-3)*sin(0.2*(x-5))}
+\curveVal{7}{\funkg}[3]
+%\psplot[algebraic=true,plotpoints=500,linecolor=black,linewidth=2pt,yMaxValue=25,yMinValue=-15]{0}{18}{\funkg}
+\pcline[linewidth=1.5pt,nodesepB=0,linecolor=BrickRed](PC)(MC)
+\psdot[dotsize=5pt](MC)
+\uput{0.2}[40]{0}(MC){M$_{\text{c}}$}
+\psarc[linewidth=1.5pt,linecolor=cyan](MC){!Rhox0}{255}{340}
+\psdot[dotsize=5pt](PC)
+\uput{0.25}[-60]{0}(PC){P}
+\uput{0.25}[60]{0}(QC){Q}
+\uput{0.3}[-100]{0}(MW){M$_{\text{w}}$}
+\pnode([offset=1.3cm]{MC}PC){PCO}
+\pnode([offset=-1.3cm]{PC}MC){MCO}
+\pnode([offset=-1.3cm]{PC}MW){MWO}
+\psline[linewidth=1.5pt](MWO)(MW)
+\psline[linewidth=1.5pt](MCO)(MC)
+\pcline[offset=-5pt,linewidth=1.5pt,linecolor=BrickRed]{<->}(MWO)(MCO)
+\ncput*{\color{BrickRed}$R=\rho - r$}
+\psdot[dotsize=5pt](QC)
+\psdot[dotsize=5pt](MW)
+\pscircle[linewidth=1.5pt](MW){!rW}
+\psarcn[linewidth=1.5pt,linecolor=BrickRed]{->}(MW){!rW 0.5 add}{180}{150}
+\uput{3.65}[165]{0}(MW){$\omega=\dot{\varphi}$}
+%\multido{\iC=0+1}{11}{%
+%\definecolor[ps]{rainbow}{hsb}{0.9 \iC\space 15 div sub 0.95 0.7 }%
+%\rput{!-90 \iC\space 0.5 mul 180 mul Pi div rW div sub alpha sub}(MW){\psline[linewidth=1.5pt,linecolor=rainbow](!rW 0)(!rW 0.2 sub 0)}
+%\rput{!-90 \iC\space 0.5 mul 180 mul Pi div Rhox0 div sub alpha sub}(MC){\psline[linewidth=1.5pt,linecolor=rainbow](!Rhox0 0)(!Rhox0 0.2 add 0)}
+%}
+%%\rput(MW){\psline[linewidth=1.5pt]{->}(0,0)(!tex 4 mul tey 4 mul)}
+\rput{!beta}(MW){\pcline[linewidth=1.2pt,linecolor=BrickRed]{->}(0,0)(2,0)\nbput[npos=0.7]{\color{BrickRed}$\vv{v_{\text{c}}}$}}
+\rput{0}(MC){\uput{!Rho}[-19]{0}(0,0){\color{cyan}G$_{f}$}}
+\rput{-40}(MC){\pnode(!Rho rW sub 0){MWI}}
+\rput{-40}(MC){\pnode(!Rho 0){PCI}}
+\pscircle[linewidth=1.2pt,linecolor=gray,linestyle=dashed](MWI){!rW}
+\psarc[linewidth=1.5pt,linecolor=gray,linestyle=dashed](MC){!Rhox0 rW sub}{290}{330}
+\pcline[linewidth=1pt,nodesepB=0,linecolor=cyan!60,linestyle=dashed](PCI)(MC)
+\pcline[linewidth=1.5pt,nodesepB=0,linecolor=gray,linestyle=dashed](MWI)(MC)
+\psdot[dotsize=5pt,linecolor=gray](MWI)
+\psdot[dotsize=5pt,linecolor=gray](PCI)
+\uput{0.3}[-20]{0}(PCI){$\text{P}'$}
+\uput{0.3}[0]{0}(MWI){$\text{M}_{\text{w}}'$}
+\multido{\iC=0+1}{11}{%
+\definecolor[ps]{rainbow}{hsb}{0.9 \iC\space 15 div sub 1 \iC\space 11 div sub 0.7 }%
+\rput{!-90 \iC\space 0.5 mul 180 mul Pi div rW div sub -50 sub}(MWI){\psline[linewidth=1.5pt,linecolor=rainbow](!rW 0)(!rW 0.2 sub 0)}
+\rput{!-90 \iC\space 0.5 mul 180 mul Pi div Rhox0 div sub -50 sub}(MC){\psline[linewidth=1.5pt,linecolor=rainbow](!Rhox0 0)(!Rhox0 0.2 add 0)}
+}
+%\multido{\iC=0+1}{11}{%
+%\rput{!-90 \iC\space 0.5 mul 180 mul Pi div rW div sub alpha sub 50 gamma sub Rhox0 mul rW div sub}(MWI){\psline[linewidth=1.5pt,linecolor=gray!50](!rW 0)(!rW 0.2 sub 0)}
+%}
+\rput{!beta}(PC){\pcline[linewidth=2pt,linecolor=Green]{->}(0,0)(1.5,0)\nbput[npos=0.7,nrot={!beta neg}]{\color{Green}$\vv{e_{\text{t}}}$}}
+\rput{!gamma}(PC){\pcline[linewidth=2pt,linecolor=Green]{->}(0,0)(1.5,0)\nbput[npos=0.7,nrot={!gamma neg}]{\color{Green}$\vv{e_{\text{n}}}$}}
+\end{pspicture}
+
+The condition of a rolling wheel without slipping forces, that the center of the wheel needs to make a rotation around the point P. Therefore, the center moves with the velocity:
+\begin{equation*}
+ \vv{v_{\text{c}}} = r\cdot \dot{\varphi}\cdot \vv{e_{\text{t}}} \qquad \text{with normed tangent vector } \vv{e_{\text{t}}}
+\end{equation*}
+Cause the center of the wheel also moves along the circle around M$_{\text{c}}$ with radius $\rho - r$ and therefore the point P moves through the distance $\Delta s$ to the point $\text{P}'$---the velocities in M$_\text{w}$ and in P behave like their corresponding radii:
\begin{equation*}
-\omega=\frac{\text{d}\varphi}{\text{d}t}\quad\text{ and }\quad \dot{s}=\sqrt{1+f'(x)^2}\cdot\frac{\text{d}x}{\text{d}t}
+ \vv{v_{\text{c}}} = \frac{\rho - r}{\rho}\cdot \frac{\Delta s}{\Delta t} \cdot \vv{e_{\text{t}}} \qquad \text{with very small intervals, thus }\quad \frac{\Delta s}{\Delta t} = \dot{s}
\end{equation*}
-this finally leads to
+Equating the right sides of both equations for the velocity of the center of the wheel finally leads to:
\begin{equation*}
-\text{d} \varphi=\left(\frac{1}{r}-\frac{1}{\varrho}\right)\cdot\sqrt{1+f'(x)^2}\,\text{d}x
+ r\cdot \dot{\varphi} = \frac{\rho - r}{\rho}\cdot \dot{s} \qrq \frac{\text{d}\varphi}{\text{d}t} = \frac{\rho - r}{\rho \cdot r}\cdot \frac{\text{d}s}{\text{d}t} \qrq \text{d}\varphi = \frac{\rho - r}{\rho \cdot r}\cdot \text{d}s = \frac{\rho - r}{\rho \cdot r}\cdot \sqrt{1+[f'(x)]^{2}} \cdot \text{d}x
\end{equation*}
@@ -547,7 +719,7 @@ Here follows a list of the vehicles that come along with the package:
\section{Predefined wheels}
-In this section we present the predefined wheels that can be used for the front or back wheel.
+In this section we present $12$ predefined wheels that can be used for the front and/or the back wheel.
@@ -641,6 +813,16 @@ In this section we present the predefined wheels that can be used for the front
+\subsection{\textbackslash SpokesWheelB}
+
+\begin{LTXexample}[pos=l,width=2cm]
+\begin{pspicture}(-1,-1)(1,1)
+\rput(!/rB 1 def 0 0){\SpokesWheelB}
+\end{pspicture}
+\end{LTXexample}
+
+
+
\subsection{\textbackslash TractorFrontWheel}
\begin{LTXexample}[pos=l,width=2cm]
@@ -671,7 +853,7 @@ This package offers the following command:
\textbf{Important note:} The function has to be given in algebraic notation and not in RPN.
-The package \LPack{pst-vehicle} contains the options \nxLkeyword{epsilon=}, \nxLkeyword{rB=}, \nxLkeyword{rF=}, \nxLkeyword{d=}, \nxLkeyword{gang=}, \nxLkeyword{vehicle=}, \nxLkeyword{ownvehicle=}, \nxLkeyword{backwheel=}, \nxLkeyword{frontwheel=}, \nxLkeyword{MonoAxis=} and \nxLkeyword{showSlope=}
+The package \LPack{pst-vehicle} contains the options \nxLkeyword{epsilon=}, \nxLkeyword{rB=}, \nxLkeyword{rF=}, \nxLkeyword{d=}, \nxLkeyword{gang=}, \nxLkeyword{vehicle=}, \nxLkeyword{ownvehicle=}, \nxLkeyword{backwheel=}, \nxLkeyword{frontwheel=}, \nxLkeyword{MonoAxis=}, \nxLkeyword{showSlope=} and \nxLkeyword{startPos=}
\begin{quote}
\begin{tabularx}{\linewidth}{ @{} l >{\ttfamily}l X @{} }\toprule
\emph{Name} & \emph{Default} & \emph{Meaning} \\\midrule
@@ -686,6 +868,7 @@ The package \LPack{pst-vehicle} contains the options \nxLkeyword{epsilon=}, \nxL
\Lkeyword{frontwheel} & \texttt{\textbackslash wheelA} & wheelA is chosen by default\\
\Lkeyword{MonoAxis} & false & if the vehicle has one axis\\
\Lkeyword{showSlope} & true & showing the slope of the vehicle\\
+\Lkeyword{startPos} & 0 & synchronizing the initial rotation of the wheels at the start point\\
\bottomrule
\end{tabularx}
\end{quote}
@@ -759,9 +942,18 @@ The same body of the vehicle is chosen as within the example above, but the fron
\end{LTXexample}
+\newpage
+
\section{Animation}
+In case of animation there is a thing to be said: If tex memory is exceeded, please increase your memory. For \TeX{}Live users this can be done within the \texttt{texmf.cnf}. We chose the following:
+\begin{lstlisting}
+main_memory = 12000000 % words of inimemory available; also applies to inimf&mp
+extra_mem_top = 60000000 % extra high memory for chars, tokens, etc.
+extra_mem_bot = 12000000 % extra low memory for boxes, glue, breakpoints, etc.
+\end{lstlisting}
+
\begin{LTXexample}[pos=t,width=15cm]
\def\funkg{0.25*(x-3)*sin(0.2*(x-2))-1}
\begin{animateinline}[controls,palindrome,
diff --git a/Master/texmf-dist/tex/generic/pst-vehicle/pst-vehicle.tex b/Master/texmf-dist/tex/generic/pst-vehicle/pst-vehicle.tex
index 83d4ff901a1..e4f84b3fffb 100644
--- a/Master/texmf-dist/tex/generic/pst-vehicle/pst-vehicle.tex
+++ b/Master/texmf-dist/tex/generic/pst-vehicle/pst-vehicle.tex
@@ -15,7 +15,6 @@
%% Distributed from CTAN archives in directory %%
%% macros/latex/base/lppl.txt; either version 1.3c of %%
%% the License, or (at your option) any later version. %%
-
%%
%% DESCRIPTION:
%% `pst-vehicle' is a PSTricks package
@@ -28,8 +27,8 @@
\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey.tex\fi
\ifx\PSTplotLoaded\endinput\else\input pst-plot.tex\fi
\ifx\PSTnodeLoaded\endinput\else\input pst-node.tex\fi
-\def\fileversion{1.0}
-\def\filedate{2017/05/29}
+\def\fileversion{1.1}
+\def\filedate{2017/06/05}
\message{`PST' v\fileversion, \filedate}
\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
@@ -47,10 +46,13 @@
\define@key[psset]{pst-vehicle}{rB}[1.6]{\def\pst@rB{#1 }} %
\define@key[psset]{pst-vehicle}{gang}[1]{\def\pst@gang{#1 }} %
\define@key[psset]{pst-vehicle}{epsilon}[1e-6]{\def\pst@epsilon{#1 }} %
+\define@key[psset]{pst-vehicle}{startPos}[0]{\def\pst@startPos{#1 }} %
\define@boolkey[psset]{pst-vehicle}[Pst@]{showSlope}[true]{} %
\define@boolkey[psset]{pst-vehicle}[Pst@]{MonoAxis}[false]{} %
+%\define@boolkey[psset]{pst-vehicle}[Pst@]{EqValveStartPos}[true]{} %
\input{ListVehicles.tex}
-\psset[pst-vehicle]{gang=1,epsilon=1e-6,rB=1.6,rF=1.6,d=5.8,vehicle=\Bike,ownvehicle=,backwheel=\wheelA,frontwheel=\wheelA,showSlope=true,MonoAxis=false}
+\psset[pst-vehicle]{gang=1,epsilon=1e-6,rB=1.6,rF=1.6,d=5.8,vehicle=\Bike,ownvehicle=,backwheel=\wheelA,frontwheel=\wheelA,showSlope=true,%
+startPos=0,MonoAxis=false}
\psset{algebraic}
\def\psVehicle{\def\pst@par{}\pst@object{psVehicle}}%
\def\psVehicle@i#1#2#3{%
@@ -68,16 +70,19 @@
\pst@Verb{%
/rpn { tx@AlgToPs begin AlgToPs end cvx } def%
/x0 #2 def % -------------- x-Wert des Punktes auf der Kurve, wo das Hinterrad die Kurve ber\"{u}hrt; von diesem Wert startet die Rechnung
+ /XST \pst@startPos\space def % Untergrenze f\"{u}r die Integration bei der Rotationswinkelbestimmung
%---- % Definition of the function f(x), its first derivative f'(x) and \sqrt{1+f'(x)^2} Definition de la fonction et la premiere derivee
- /func (#3) rpn def
- /Diff (Derive(1,#3)) rpn def
- /DiffI (Derive(2,#3)) rpn def
- /dAB (sqrt(1+Diff^2)) rpn def
- /dABdiff (Derive(1,sqrt(1+(Derive(1,#3))^2))) rpn def
- /x x0 def func /funcx0 exch def % ----- f(x0)
- /x x0 def Diff /Diffx0 exch def % ----- f'(x0)
- /x x0 def DiffI /DiffIx0 exch def % --- f''(x0)
-% Calculating the length of the function between X1 and X2 ---- longueur de l'arc entre les points d'abscisse X1 et X2 %
+ /func (#3) rpn def
+ /Diff (Derive(1,#3)) rpn def
+ /DiffI (Derive(2,#3)) rpn def
+ /dAB (sqrt(1+Diff^2)) rpn def
+ /dABdiff (Derive(1,sqrt(1+(Derive(1,#3))^2))) rpn def
+ /x XST def func /funcxST exch def %---- f(XST)
+ /x XST def Diff /DiffxST exch def %---- f'(XST)
+ /x x0 def func /funcx0 exch def % ----- f(x0)
+ /x x0 def Diff /Diffx0 exch def % ----- f'(x0)
+ /x x0 def DiffI /DiffIx0 exch def % --- f''(x0)
+%-----------------------------------------------------------------------------------------------------------------------
/eps \pst@epsilon def
% Definition of a transmission between frontwheel and backwheel (interesting for vehicles with pedals) --- Gangschaltung
/Gang \pst@gang def
@@ -94,21 +99,27 @@
/tA 1 1 Diffx0 dup mul add sqrt div def%
/deltax0 tA Diffx0 mul rBs mul def
/deltay0 tA rBs mul def
+%-----------------------------------------------------------------------------------------------------------------------------------------
+/Function ((x-x0+rBs*Diffx0/(sqrt(1+(Diffx0)^2))-rFs*(Diff)/(sqrt(1+(Diff)^2)))^2+%
+ (func-funcx0+rFs/(sqrt(1+(Diff)^2))-rBs/(sqrt(1+(Diffx0)^2)))^2-dA12s^2) rpn def
+%-----------------------------------------------------------------------------------------------------------------------------------------
+/FunctionST ((x-XST+rBs*DiffxST/(sqrt(1+(DiffxST)^2))-rFs*(Diff)/(sqrt(1+(Diff)^2)))^2+%
+ (func-funcxST+rFs/(sqrt(1+(Diff)^2))-rBs/(sqrt(1+(DiffxST)^2)))^2-dA12s^2) rpn def
%--------- inferior value to search for the intersection point of the frontwheel with the curve
-/Xinf x0 def % ---------------------------------- Untergrenze f\"{u}r die Schnittpunktsuche des Vorderrades mit der Kurve
+/Zeros { %% Funktion xinf
+1 dict begin
+/Xinf exch def % ---------------------------------- Untergrenze f\"{u}r die Schnittpunktsuche des Vorderrades mit der Kurve
% superior value to search for the intersection point of the frontwheel with the curve = x0 + distance axes + radius frontwheel + radius backwheel
-/Xsup x0 dA12s add rBs rFs add add def % ---------- Obergrenze f\"{u}r die Schnittpunktsuche des Vorderrades mit der Kurve
+/Xsup Xinf dA12s add rBs rFs add add def % ---------- Obergrenze f\"{u}r die Schnittpunktsuche des Vorderrades mit der Kurve
%---% Calculating the intersection point of the frontwheel with the function------ Schnittpunktberechnung ---------------------------------
/NB 0 def %-----------------loop-variable ----- Laufvariable f\"{u}r loop
/NbreIterations 200 def % ---------- Maximum of iterations for the loop
-/Function ((x-x0+rBs*Diffx0/(sqrt(1+(Diffx0)^2))-rFs*(Diff)/(sqrt(1+(Diff)^2)))^2+%
- (func-funcx0+rFs/(sqrt(1+(Diff)^2))-rBs/(sqrt(1+(Diffx0)^2)))^2-dA12s^2) rpn def
{ %------------------------------------ loop begin ---------------------
/xM Xinf Xsup add 2 div def %--------- Mittelwert von xM = (Xinf + Xsup):2
/x Xinf def
- /F_1 Function def %----------------- F(Xinf)
+ /F_1 FUNK def %----------------- F(Xinf)
/x xM def %-------------------------
- /F_M Function def %----------------- F(xM)
+ /F_M FUNK def %----------------- F(xM)
F_M 0 eq {exit} if %---------------- if F(xM) = 0 --> exit
F_1 F_M mul 0 ge {/Xinf xM def} %-- F(Xinf) * F(xM) >= 0 Xinf = xM, else Xsup = xM
{/Xsup xM def}
@@ -117,7 +128,13 @@
/NB NB 1 add def %------------------- else loopvariable NB = NB + 1 Loopvariable um eins erh\"{o}hen
NB NbreIterations ge {exit} if %------ if number of iterations >= 200 --> exit
} loop
-/FWx xM def
+xM
+ end
+} def
+% \ifPst@EqValveStartPos
+/FUNK {FunctionST} def XST Zeros /FWxST exch def
+% \else /FWxST XST def \fi
+/FUNK {Function} def x0 Zeros /FWx exch def
/FWy /x FWx def func def %----------------------- Ber\"{u}hrpunkt des Vorderrades (FWx,FWy)
/mFWy /x FWx def Diff def %----------------------- mFWy = Tangentensteigung in (FWx,FWy)
/TermFW 1 1 mFWy dup mul add sqrt div def % 1/sqrt(1+f'(x_Q)^2)
@@ -134,9 +151,9 @@
X1 X2 /x {dPhiF} eps SIMPSON
} def
% % length of the curve for the wheels -- La longueur de la courbe pour la roue avant --- Kurvenl\"{a}nge
-/X1 0 def /X2 x0 def % Integral_{0}^{x0}
+/X1 XST def /X2 x0 def % Integral_{0}^{x0}
/sB AngleCumB def % ---backwheel - length from 0 to x0 ---- roue arri\`{e}re ---- Kurvenl\"{a}nge von 0 bis x0 (Hinterrad)
-/X2 FWx def
+/X1 FWxST def /X2 FWx def
/sF AngleCumF def % --frontwheel - length from 0 to the abscissa of the intersection frontwheel with curve - roue avant -- Kurvenl\"{a}nge von 0 bis zum SP Vorderrad - Kurve
%--------------------------------------------------------------------------------------------------------------------
%---% Definition angle of rotation for the backwheel --- Definition de l'angle de roue arriere ---- Rotationswinkel des Hinterrades
@@ -162,9 +179,9 @@
/gamma beta alpha add AFx ABx lt { 180 add } if def % gesamter Neigungswinkel des Fahrzeugs
%--------% Special case (mono-axis vehicle) Nr 4 --> segway ---------------------------------------------------------------------------
\ifPst@MonoAxis Diffx0 1 atan /omega exch def Diffx0 /mVehicle exch def \else FWy funcx0 sub FWx x0 sub div /mVehicle exch def mVehicle 1 atan /omega exch def \fi
-/normNorm x0 FWx sub FWy funcx0 sub div dup mul 1 add sqrt def
-/mTgy FWy funcx0 sub 0 eq { 1 } { x0 FWx sub FWy funcx0 sub div normNorm div } ifelse def
-/mTgx FWy funcx0 sub 0 eq { 0 } { 1 normNorm div } ifelse def
+/normNorm FWy funcx0 eq { 1 } { x0 FWx sub FWy funcx0 sub div dup mul 1 add sqrt } ifelse def
+/mTgy FWy funcx0 eq { 1 } { x0 FWx sub FWy funcx0 sub div normNorm div } ifelse def
+/mTgx FWy funcx0 eq { 0 } { 1 normNorm div } ifelse def
/xMTg x0 FWx add 2 div def
/yMTg funcx0 FWy add 2 div def
}%