summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/pst-vehicle
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-09-16 20:46:46 +0000
committerKarl Berry <karl@freefriends.org>2017-09-16 20:46:46 +0000
commit3974ef07e7042d7cfc8ac6fd0252fe3fdf080996 (patch)
tree68e5e86d87e7fd533d34508de0931034ff76e7b0 /Master/texmf-dist/tex/generic/pst-vehicle
parentfed4a58472ca085eafb9870ae915fc11ee60f9c5 (diff)
pst-vehicle (16sep17)
git-svn-id: svn://tug.org/texlive/trunk@45320 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/pst-vehicle')
-rw-r--r--Master/texmf-dist/tex/generic/pst-vehicle/ListVehicles.tex6
-rw-r--r--Master/texmf-dist/tex/generic/pst-vehicle/pst-vehicle.tex38
2 files changed, 23 insertions, 21 deletions
diff --git a/Master/texmf-dist/tex/generic/pst-vehicle/ListVehicles.tex b/Master/texmf-dist/tex/generic/pst-vehicle/ListVehicles.tex
index f3d57441dca..cb2e8f2c614 100644
--- a/Master/texmf-dist/tex/generic/pst-vehicle/ListVehicles.tex
+++ b/Master/texmf-dist/tex/generic/pst-vehicle/ListVehicles.tex
@@ -5,7 +5,7 @@
%%
%% Package `pst-vehicle.tex'
%%
-%% Thomas S\"{o}ll
+%% Thomas Söll
%% with the collaboration of
%% Juergen Gilg
%% Manuel Luque
@@ -163,7 +163,7 @@
\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.58,1.35)(1.62,1.38)(1.65,1.4)% <<----- Start the white line -- Startpunkt für die weiß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)
@@ -467,4 +467,4 @@
\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/tex/generic/pst-vehicle/pst-vehicle.tex b/Master/texmf-dist/tex/generic/pst-vehicle/pst-vehicle.tex
index e4f84b3fffb..a971eaae9fa 100644
--- a/Master/texmf-dist/tex/generic/pst-vehicle/pst-vehicle.tex
+++ b/Master/texmf-dist/tex/generic/pst-vehicle/pst-vehicle.tex
@@ -5,7 +5,7 @@
%%
%% Package `pst-vehicle.tex'
%%
-%% Thomas S\"{o}ll
+%% Thomas Söll
%% with the collaboration of
%% Juergen Gilg
%% Manuel Luque
@@ -27,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.1}
-\def\filedate{2017/06/05}
+\def\fileversion{1.2}
+\def\filedate{2017/09/16}
\message{`PST' v\fileversion, \filedate}
\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
@@ -41,6 +41,7 @@
\define@key[psset]{pst-vehicle}{frontwheel}[\wheelA]{\def\pst@frontwheel{#1 }} %
\define@key[psset]{pst-vehicle}{ownvehicle}{\def\pst@ownvehicle{#1 }} %
\define@key[psset]{pst-vehicle}{vehicle}[\Bike]{\def\pst@vehicle{#1}} %
+\define@key[psset]{pst-vehicle}{GravNode}[]{\def\pst@GravNode{#1 }} %
\define@key[psset]{pst-vehicle}{d}[5.8]{\def\pst@d{#1 }} %
\define@key[psset]{pst-vehicle}{rF}[1.6]{\def\pst@rF{#1 }} %
\define@key[psset]{pst-vehicle}{rB}[1.6]{\def\pst@rB{#1 }} %
@@ -52,7 +53,7 @@
%\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,%
-startPos=0,MonoAxis=false}
+startPos=0,MonoAxis=false,GravNode=dA12 2 div 1}
\psset{algebraic}
\def\psVehicle{\def\pst@par{}\pst@object{psVehicle}}%
\def\psVehicle@i#1#2#3{%
@@ -69,8 +70,8 @@ startPos=0,MonoAxis=false}
\begin@SpecialObj
\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
+ /x0 #2 def % -------------- x-Wert des Punktes auf der Kurve, wo das Hinterrad die Kurve berührt; von diesem Wert startet die Rechnung
+ /XST \pst@startPos\space def % Untergrenze fü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
@@ -108,11 +109,11 @@ startPos=0,MonoAxis=false}
%--------- inferior value to search for the intersection point of the frontwheel with the curve
/Zeros { %% Funktion xinf
1 dict begin
-/Xinf exch def % ---------------------------------- Untergrenze f\"{u}r die Schnittpunktsuche des Vorderrades mit der Kurve
+/Xinf exch def % ---------------------------------- Untergrenze fü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 Xinf 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ü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
+/NB 0 def %-----------------loop-variable ----- Laufvariable für loop
/NbreIterations 200 def % ---------- Maximum of iterations for the loop
{ %------------------------------------ loop begin ---------------------
/xM Xinf Xsup add 2 div def %--------- Mittelwert von xM = (Xinf + Xsup):2
@@ -125,7 +126,7 @@ startPos=0,MonoAxis=false}
{/Xsup xM def}
ifelse
Xinf Xsup sub abs 1e-8 le {exit} if %- if Xinf - Xsup <= 10^-8 --> exit
- /NB NB 1 add def %------------------- else loopvariable NB = NB + 1 Loopvariable um eins erh\"{o}hen
+ /NB NB 1 add def %------------------- else loopvariable NB = NB + 1 Loopvariable um eins erhöhen
NB NbreIterations ge {exit} if %------ if number of iterations >= 200 --> exit
} loop
xM
@@ -135,7 +136,7 @@ xM
/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)
+/FWy /x FWx def func def %----------------------- Berü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)
/deltaxFW TermFW mFWy mul rFs mul def % skal*rF*f'(x_Q)*1/sqrt(1+f'(x_Q)^2)
@@ -150,31 +151,31 @@ xM
/AngleCumF { %
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
+% % length of the curve for the wheels -- La longueur de la courbe pour la roue avant --- Kurvenlänge
/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)
+/sB AngleCumB def % ---backwheel - length from 0 to x0 ---- roue arrière ---- Kurvenlänge von 0 bis x0 (Hinterrad)
/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
+/sF AngleCumF def % --frontwheel - length from 0 to the abscissa of the intersection frontwheel with curve - roue avant -- Kurvenlä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
/phiB sB RadToDeg neg def
%---% Definition angle of rotation for the frontwheel --- Definition de l'angle de roue avant ---- Rotationswinkel des Vorderrades
/phiF sF RadToDeg neg def
%---------------------------------------------------------------------------------------------------------------------
-%--% coordinates for the axes of the wheels within the non-scaled system -- Koordinaten der Vorderradachse im nicht skalierten System ( au{\ss}erhalb der \psscalebox )
+%--% coordinates for the axes of the wheels within the non-scaled system -- Koordinaten der Vorderradachse im nicht skalierten System ( außerhalb der \psscalebox )
%----------------------------------------------------------------------------------------------------------------------
/AFx FWx deltaxFW sub def % % x-coordinate front axis x-Koordinate der Vorderradachse
/AFy FWy deltayFW add def % % y-coordinate front axis y-Koordinate der Vorderradachse
/ABx x0 deltax0 sub def % % x-coordinate back axis x-Koordinate der Hinterradachse
/ABy funcx0 deltay0 add def % % y-coordinate back axis y-Koordinate der Hinterradachse
-%--------------- Koordinaten der Vorderradachse im System des Fahrzeugs, also unskalierte Gr\"{o}{\ss}en verwenden --( innerhalb der \psscalebox )
+%--------------- Koordinaten der Vorderradachse im System des Fahrzeugs, also unskalierte Größen verwenden --( innerhalb der \psscalebox )
%--coordinates for the front axis of the wheels within \psscalebox -- Die Koordinaten der Hinterradachse sind im System des Fahrzeugs (0,0)
/AF1x dA12 dup mul rF rB sub dup mul sub sqrt def
/AF1y rF rB sub def
%------% slope and angle of the vehicle-----------------------------------------------------------------------------
/m-vehicle AFy ABy sub AFx ABx sub div def
-/beta m-vehicle 1 atan def % % angle for both radii of front- and backwheel are equal -- Neigungswinkel des Fahrzeugs bei gleich gro{\ss}en R\"{a}dern
-/alpha AF1y neg AF1x atan def % % additional angle if radii of front- and backwheel are not equal -- zus\"{a}tzlicher Winkel bei unterschiedlich gro{\ss}en R\"{a}dern
+/beta m-vehicle 1 atan def % % angle for both radii of front- and backwheel are equal -- Neigungswinkel des Fahrzeugs bei gleich großen Rädern
+/alpha AF1y neg AF1x atan def % % additional angle if radii of front- and backwheel are not equal -- zusätzlicher Winkel bei unterschiedlich großen Rädern
% whole angle (correction with +180 in case the whole angle gets 90 degrees which can be possible with not equal radii)
/gamma beta alpha add AFx ABx lt { 180 add } if def % gesamter Neigungswinkel des Fahrzeugs
%--------% Special case (mono-axis vehicle) Nr 4 --> segway ---------------------------------------------------------------------------
@@ -192,6 +193,7 @@ xM
%------------------------- % SETTING SOME VEHICLES -------------------------------------------------------
\psscalebox{#1}{%---------------Das Fahrzeug kann skaliert werden -----------------------------------------
%\psset{linecolor=#2}%
+\pnode(!\pst@GravNode){GravC}%
\pst@vehicle}}%
\ifPst@showSlope
\rput{!omega}(!x0 mVehicle 0 ge { 0 add } { 100 add } ifelse funcx0 0.75 sub){%