summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/sankey/tikzlibrarydubins.code.tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-03-14 22:49:02 +0000
committerKarl Berry <karl@freefriends.org>2021-03-14 22:49:02 +0000
commit11cb80cef7eaad10df3ed09d6d5a50ad2c055881 (patch)
treed61dcff1e45fad3df683797a9fa17e91e2fb7bdd /Master/texmf-dist/tex/latex/sankey/tikzlibrarydubins.code.tex
parentfd1e514f7290c40fb1e5c37994e7756c4d73348d (diff)
sankey (14mar21)
git-svn-id: svn://tug.org/texlive/trunk@58349 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/sankey/tikzlibrarydubins.code.tex')
-rw-r--r--Master/texmf-dist/tex/latex/sankey/tikzlibrarydubins.code.tex425
1 files changed, 225 insertions, 200 deletions
diff --git a/Master/texmf-dist/tex/latex/sankey/tikzlibrarydubins.code.tex b/Master/texmf-dist/tex/latex/sankey/tikzlibrarydubins.code.tex
index da1dc120dca..291bcd771fe 100644
--- a/Master/texmf-dist/tex/latex/sankey/tikzlibrarydubins.code.tex
+++ b/Master/texmf-dist/tex/latex/sankey/tikzlibrarydubins.code.tex
@@ -1,15 +1,40 @@
-% Copyright (C) 2016-2021 by Paul Gaborit
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-%
-% 2. under the GNU Public License.
+%%
+%% This is file `tikzlibrarydubins.code.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% sankey.dtx (with options: `tikzlibrarydubins.code.tex')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2016, 2021 by Paul Gaborit
+%%
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3 of this license or (at
+%% your option) any later version. The latest version of this license is
+%% in
+%%
+%% <http://www.latex-project.org/lppl.txt>
+%%
+%% and version 1.3 or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status “maintained”.
+%%
+%% The Current Maintainer of this work is Paul Gaborit.
+%%
+%% This work consists of the files sankey.dtx, sankey.ins and the derived
+%% files sankey.sty, tikzlibrarydubins.code.tex, sankey-doc-preamble.sty,
+%% sankey-example1.tex, sankey-example2.tex, sankey-example3.tex,
+%% sankey-example3-variation.tex, sankey-example4.tex,
+%% sankey-example-energy.tex
+%%
+\def\tikzlibrarydubins@version{v3.0}
+\def\tikzlibrarydubins@date{2021/03/14}
\usetikzlibrary{calc}
-
\RequirePackage{etoolbox}
-\RequirePackage{etextools}
\RequirePackage{xfp}
\newbool{dubinspathreverse}
@@ -19,29 +44,28 @@
\ifnumequal{\pgfmathresult}{1}%
}
-\def\anglebetween#1#2#3{%macro, s, t
- \path let
- \p{s}=(#2), \p{t}=(#3),
- \n{angle}={atan2(\y{t}-\y{s},\x{t}-\x{s})}
- in \pgfextra {
- \pgfmathsetmacro#1{\n{angle}}
- \aftergroup@def#1
- };
+\def\dbp@getxy#1#2#3{%
+ \tikz@scan@one@point\pgfutil@firstofone(#3)\relax%
+ \edef#1{\the\pgf@x}%
+ \edef#2{\the\pgf@y}%
}
-\def\distancebetween#1#2#3{%macro, s, t
- \path let
- \p{s}=(#2), \p{t}=(#3),
- %\n{dist}={veclen(\x{t}-\x{s},\y{t}-\y{s}))}
- \n{dist}={\fpeval{sqrt((\x{t}-\x{s})*(\x{t}-\x{s})+(\y{t}-\y{s})*(\y{t}-\y{s}))}}
- in \pgfextra {
- %\typeout{n{dist}:\n{dist}}
- \pgfmathsetmacro#1{\n{dist}}
- \aftergroup@def#1
- };
+\def\dbp@anglebetween#1#2#3{%macro, s, t
+ \dbp@getxy\dbp@ax\dbp@ay{#2}
+ \dbp@getxy\dbp@bx\dbp@by{#3}
+ \pgfmathsetmacro#1{atan2(\dbp@by-\dbp@ay,\dbp@bx-\dbp@ax)}
}
-\newcommand\dubinspath@rsr{% s, sa, t, ta, as, len, at, r
+\def\dbp@distancebetween#1#2#3{%macro, s, t
+ \dbp@getxy\dbp@ax\dbp@ay{#2}
+ \dbp@getxy\dbp@bx\dbp@by{#3}
+ \edef#1{\fpeval{sqrt(%
+ (\dbp@bx-\dbp@ax)*(\dbp@bx-\dbp@ax)%
+ +(\dbp@by-\dbp@ay)*(\dbp@by-\dbp@ay)%
+ )}}%
+}
+
+\newcommand\dbp@rsr{% s, sa, t, ta, as, len, at, r
let
\p{tr}=([shift={(\dbp@angb-90:\dbp@radius pt)}]\dbp@b),
\n1={\dbp@anga+90},
@@ -53,7 +77,7 @@
arc(\n3:\n2:\dbp@rradius pt)
}
-\newcommand\dubinspath@lsl{% s, sa, t, ta, as, len, at, r
+\newcommand\dbp@lsl{% s, sa, t, ta, as, len, at, r
let
\p{tl}=([shift={(\dbp@angb+90:\dbp@radius pt)}]\dbp@b),
\n1={\dbp@anga-90},\n2={\n1+\dbp@firstangle},
@@ -64,7 +88,7 @@
arc(\n4:\n3:\dbp@lradius pt)
}
-\newcommand\dubinspath@rsl{% s, sa, t, ta, as, len, at, r
+\newcommand\dbp@rsl{% s, sa, t, ta, as, len, at, r
let
\p{tl}=([shift={(\dbp@angb+90:\dbp@radius pt)}]\dbp@b),
\n1={\dbp@anga+90},\n2={\n1-\dbp@firstangle},
@@ -75,7 +99,7 @@
arc(\n4:\n3:\dbp@lradius pt)
}
-\newcommand\dubinspath@lsr{% s, sa, t, ta, as, len, at, r
+\newcommand\dbp@lsr{% s, sa, t, ta, as, len, at, r
let
\p{tr}=([shift={(\dbp@angb-90:\dbp@radius pt)}]\dbp@b),
\n1={\dbp@anga-90},\n2={\n1+\dbp@firstangle},
@@ -86,7 +110,7 @@
arc(\n4:\n3:\dbp@rradius pt)
}
-\newcommand\dubinspath@lrl{% s, sa, t, ta, as, ai, at, r
+\newcommand\dbp@lrl{% s, sa, t, ta, as, ai, at, r
let
\n1={\dbp@anga-90},\n2={\n1+\dbp@firstangle},
\n3={\dbp@angb-90},\n4={\n3-\dbp@lastangle}
@@ -96,7 +120,7 @@
arc(\n4:\n3:\dbp@lradius pt)
}
-\newcommand\dubinspath@rlr{% s, sa, t, ta, as, ai, at, r
+\newcommand\dbp@rlr{% s, sa, t, ta, as, ai, at, r
let
\n1={\dbp@anga+90},\n2={\n1-\dbp@firstangle},
\n3={\dbp@angb+90},\n4={\n3+\dbp@lastangle}
@@ -105,77 +129,68 @@
arc(\n2+180:\n2+180+\dbp@midparam:\dbp@lradius pt)
arc(\n4:\n3:\dbp@rradius pt)
}
-\newcommand\dubinspath@rev@lsl{\dubinspath@rsr}
-\newcommand\dubinspath@rev@rsr{\dubinspath@lsl}
-\newcommand\dubinspath@rev@lsr{\dubinspath@lsr}
-\newcommand\dubinspath@rev@rsl{\dubinspath@rsl}
-\newcommand\dubinspath@rev@lrl{\dubinspath@rlr}
-\newcommand\dubinspath@rev@rlr{\dubinspath@lrl}
-
+\newcommand\dbp@rev@lsl{\dbp@rsr}
+\newcommand\dbp@rev@rsr{\dbp@lsl}
+\newcommand\dbp@rev@lsr{\dbp@lsr}
+\newcommand\dbp@rev@rsl{\dbp@rsl}
+\newcommand\dbp@rev@lrl{\dbp@rlr}
+\newcommand\dbp@rev@rlr{\dbp@lrl}
\newcommand\dubinspath[1]{%
\pgfextra{
\dubinspathset{#1}
\ifbool{dubinspathreverse}{
- \edef\newa{\dbp@b}
- \edef\newb{\dbp@a}
- \pgfmathsetmacro\newanga{180+\dbp@angb}
- \pgfmathsetmacro\newangb{180+\dbp@anga}
- \edef\newfirstangle{\dbp@lastangle}
- \edef\newlastangle{\dbp@firstangle}
- \edef\newmethod{rev@\dbp@method}
- \edef\newlradius{\dbp@rradius}
- \edef\newrradius{\dbp@lradius}
+ \edef\dbp@newa{\dbp@b}
+ \edef\dbp@newb{\dbp@a}
+ \pgfmathsetmacro\dbp@newanga{180+\dbp@angb}
+ \pgfmathsetmacro\dbp@newangb{180+\dbp@anga}
+ \edef\dbp@newfirstangle{\dbp@lastangle}
+ \edef\dbp@newlastangle{\dbp@firstangle}
+ \edef\dbp@newmethod{rev@\dbp@method}
+ \edef\dbp@newlradius{\dbp@rradius}
+ \edef\dbp@newrradius{\dbp@lradius}
\dubinspathset{
- start point=\newa,
- end point=\newb,
- start angle=\newanga,
- end angle=\newangb,
- first angle=\newfirstangle,
- last angle=\newlastangle,
- left and right minimum radii=\newlradius pt and \newrradius pt,
- method=\newmethod,
+ start point=\dbp@newa,
+ end point=\dbp@newb,
+ start angle=\dbp@newanga,
+ end angle=\dbp@newangb,
+ first angle=\dbp@newfirstangle,
+ last angle=\dbp@newlastangle,
+ left and right minimum radii=\dbp@newlradius pt and \dbp@newrradius pt,
+ method=\dbp@newmethod,
}
}{}
- %\typeout{dbp@lradius:\dbp@lradius}
- %\typeout{dbp@rradius:\dbp@rradius}
}
- \csname dubinspath@\dbp@method\endcsname%
+ \csname dbp@\dbp@method\endcsname%
}
+%% solution
-% solution
-% \xdef\dubinspathmethod{} % type of dubins path
-% \xdef\dubinspathlength{} % lenght (pt)
-% \xdef\dubinspathfirstangle{} % first angle
-% \xdef\dubinspathmiddleparam{} % intermediate angle or straight distance
-% \xdef\dubinspathlastangle{} % last angle
-
-\def\dubinspathstore#1#2{%
- \expandafter\xdef\csname dubinspath@store@#1@#2\endcsname%
- {\csname dubinspath#2\endcsname}%
+\def\dbp@store#1#2{%
+ \expandafter\xdef\csname dbp@store@#1@#2\endcsname%
+ {\csname dbp@#2\endcsname}%
}
-\def\dubinspathget#1#2{%
- \csname dubinspath@store@#1@#2\endcsname%
+\def\dbp@get#1#2{%
+ \csname dbp@store@#1@#2\endcsname%
}
-%
-\def\dubinspathsetparams#1#2#3#4#5{% method, length, fisrt angle, middle param, last angle
- \edef\dubinspathmethod{#1}
- \edef\dubinspathlength{#2}
- \edef\dubinspathfirstangle{#3}
- \edef\dubinspathmiddleparam{#4}
- \edef\dubinspathlastangle{#5}
+\def\dbp@setparams#1#2#3#4#5{%
+ % method, length, fisrt angle, middle param, last angle
+ \edef\dbp@method{#1}
+ \edef\dbp@length{#2}
+ \edef\dbp@firstangle{#3}
+ \edef\dbp@middleparam{#4}
+ \edef\dbp@lastangle{#5}
\ifdef{\dbp@storename}{
\foreach \p in {method,length,firstangle,middleparam,lastangle}{
- \dubinspathstore{\dbp@storename}{\p}
+ \dbp@store{\dbp@storename}{\p}
}
}{}
}
-\def\dubinspathupdateparams#1#2#3#4#5{
- \ifpgfmathcond{#2<\dubinspathlength}{
- \dubinspathsetparams{#1}{#2}{#3}{#4}{#5}
+\def\dbp@updateparams#1#2#3#4#5{
+ \ifpgfmathcond{#2<\dbp@length}{
+ \dbp@setparams{#1}{#2}{#3}{#4}{#5}
}{}
}
@@ -188,10 +203,10 @@
end angle/.store in=\dbp@angb,
store/.store in=\dbp@storename,
use store/.style={
- method=\dubinspathget{#1}{method},
- first angle=\dubinspathget{#1}{firstangle},
- last angle=\dubinspathget{#1}{lastangle},
- middle param=\dubinspathget{#1}{middleparam},
+ method=\dbp@get{#1}{method},
+ first angle=\dbp@get{#1}{firstangle},
+ last angle=\dbp@get{#1}{lastangle},
+ middle param=\dbp@get{#1}{middleparam},
},
minimum radius/.code={
\pgfmathsetmacro\dbp@radius{#1}
@@ -217,145 +232,155 @@
\dubinspathset{#1}
\tikzset{
declare function={
- angtodist(\a,\r)={abs(\a)*.01745329*\r};
- modangr(\a,\b)={
- (Mod(\a,360)<Mod(\b,360)?Mod(\a,360):Mod(\a,360)-360)+\b-Mod(\b,360)
+ angtodist(\dbp@a,\dbp@r)={abs(\dbp@a)*.01745329*\dbp@r};
+ modangr(\dbp@a,\dbp@b)={
+ (
+ Mod(\dbp@a,360)<Mod(\dbp@b,360)
+ ?
+ Mod(\dbp@a,360)
+ :
+ Mod(\dbp@a,360)-360)+\dbp@b-Mod(\dbp@b,360
+ )
};
- modangl(\a,\b)={
- (Mod(\a,360)<Mod(\b,360)?Mod(\a,360)+360:Mod(\a,360))+(\b)-Mod(\b,360)
+ modangl(\dbp@a,\dbp@b)={
+ (
+ Mod(\dbp@a,360)<Mod(\dbp@b,360)
+ ?
+ Mod(\dbp@a,360)+360
+ :
+ Mod(\dbp@a,360))+(\dbp@b)-Mod(\dbp@b,360)
};
},
}
-
- \pgfmathsetmacro\radius{\dbp@rradius}
- \pgfmathsetmacro\anga{mod((\dbp@anga)+180,360)-180}
- \pgfmathsetmacro\angb{mod((\dbp@angb)+180,360)-180}
- %\typeout{radius:\radius,anga:\anga,angb:\angb}
+
+ \pgfmathsetmacro\dbp@radius{\dbp@rradius}
+ \pgfmathsetmacro\dbp@anga{mod((\dbp@anga)+180,360)-180}
+ \pgfmathsetmacro\dbp@angb{mod((\dbp@angb)+180,360)-180}
\path
let
\p{a}=(\dbp@a),
\p{b}=(\dbp@b),
- \p{ar}=($(\p{a}) + (\anga-90:\radius pt)$),
- \p{al}=($(\p{a}) + (\anga+90:\radius pt)$),
- \p{br}=($(\p{b}) + (\angb-90:\radius pt)$),
- \p{bl}=($(\p{b}) + (\angb+90:\radius pt)$)
+ \p{ar}=($(\p{a}) + (\dbp@anga-90:\dbp@radius pt)$),
+ \p{al}=($(\p{a}) + (\dbp@anga+90:\dbp@radius pt)$),
+ \p{br}=($(\p{b}) + (\dbp@angb-90:\dbp@radius pt)$),
+ \p{bl}=($(\p{b}) + (\dbp@angb+90:\dbp@radius pt)$)
in \pgfextra{
\pgfinterruptpath
- % RSR (ar et br)
- %\typeout{RSR begin}
- \anglebetween\rsrarbr{\p{ar}}{\p{br}}
- \distancebetween\rsrdarbr{\p{ar}}{\p{br}}
- \pgfmathsetmacro\rsrangone{Mod(\anga-\rsrarbr,360)}
- \pgfmathsetmacro\rsrangtwo{Mod(\rsrarbr-\angb,360)}
- \pgfmathsetmacro\rsrlen{\rsrdarbr}
- \pgfmathsetmacro\rsrdist{
- angtodist(\rsrangone,\radius)
- +\rsrlen
- +angtodist(\rsrangtwo,\radius)
+ % RSR (ar and br)
+ \dbp@anglebetween\dbp@rsrarbr{\p{ar}}{\p{br}}
+ \dbp@distancebetween\dbp@rsrdarbr{\p{ar}}{\p{br}}
+ \pgfmathsetmacro\dbp@rsrangone{Mod(\dbp@anga-\dbp@rsrarbr,360)}
+ \pgfmathsetmacro\dbp@rsrangtwo{Mod(\dbp@rsrarbr-\dbp@angb,360)}
+ \pgfmathsetmacro\dbp@rsrlen{\dbp@rsrdarbr}
+ \pgfmathsetmacro\dbp@rsrdist{
+ angtodist(\dbp@rsrangone,\dbp@radius)
+ +\dbp@rsrlen
+ +angtodist(\dbp@rsrangtwo,\dbp@radius)
}
- \dubinspathsetparams{rsr}{\rsrdist}{\rsrangone}{\rsrlen}{\rsrangtwo}
-
- % LSL (al et bl)
- %\typeout{LSL begin}
- \anglebetween\lslalbl{\p{al}}{\p{bl}}
- \distancebetween\lsldalbl{\p{al}}{\p{bl}}
- \pgfmathsetmacro{\lslangone}{mod(\lslalbl-\anga+720,360)}
- \pgfmathsetmacro{\lslangtwo}{mod(\angb-\lslalbl+720,360)}
- \pgfmathsetmacro\lsllen{\lsldalbl}
- \pgfmathsetmacro\lsldist{
- angtodist(\lslangone,\radius)
- +\lsllen
- +angtodist(\lslangtwo,\radius)
+ \dbp@setparams{rsr}{\dbp@rsrdist}{\dbp@rsrangone}{\dbp@rsrlen}{\dbp@rsrangtwo}
+
+ % LSL (al and bl)
+ \dbp@anglebetween\dbp@lslalbl{\p{al}}{\p{bl}}
+ \dbp@distancebetween\dbp@lsldalbl{\p{al}}{\p{bl}}
+ \pgfmathsetmacro{\dbp@lslangone}{mod(\dbp@lslalbl-\dbp@anga+720,360)}
+ \pgfmathsetmacro{\dbp@lslangtwo}{mod(\dbp@angb-\dbp@lslalbl+720,360)}
+ \pgfmathsetmacro\dbp@lsllen{\dbp@lsldalbl}
+ \pgfmathsetmacro\dbp@lsldist{
+ angtodist(\dbp@lslangone,\dbp@radius)
+ +\dbp@lsllen
+ +angtodist(\dbp@lslangtwo,\dbp@radius)
}
- \dubinspathupdateparams{lsl}{\lsldist}{\lslangone}{\lsllen}{\lslangtwo}
-
- % RSL (ar et bl)
- %\typeout{RSL begin}
- \distancebetween\rsldarbl{\p{ar}}{\p{bl}}
- \pgfmathtruncatemacro\rslok{(\rsldarbl>=2*\radius)?1:0}
- \ifnumequal{\rslok}{1}{
- \anglebetween\rslarbl{\p{ar}}{\p{bl}}
- \pgfmathsetmacro\rslanglesup{
- asin(\radius/\rsldarbl*2)}
- \pgfmathsetmacro\rslangone{Mod(\anga-\rslarbl+\rslanglesup,360)}
- \pgfmathsetmacro\rslangtwo{Mod(\angb-\rslarbl+\rslanglesup,360)}
- \pgfmathsetmacro\rsllen{veclen(\rsldarbl,\radius)}
- \pgfmathsetmacro\rsldist{
- angtodist(\rslangone,\radius)
- +\rsllen
- +angtodist(\rslangtwo,\radius)
+ \dbp@updateparams%
+ {lsl}{\dbp@lsldist}{\dbp@lslangone}{\dbp@lsllen}{\dbp@lslangtwo}
+
+ % RSL (ar and bl)
+ \dbp@distancebetween\dbp@rsldarbl{\p{ar}}{\p{bl}}
+ \pgfmathtruncatemacro\dbp@rslok{(\dbp@rsldarbl>=2*\dbp@radius)?1:0}
+ \ifnumequal{\dbp@rslok}{1}{
+ \dbp@anglebetween\dbp@rslarbl{\p{ar}}{\p{bl}}
+ \pgfmathsetmacro\dbp@rslanglesup{
+ asin(\dbp@radius/\dbp@rsldarbl*2)}
+ \pgfmathsetmacro\dbp@rslangone
+ {Mod(\dbp@anga-\dbp@rslarbl+\dbp@rslanglesup,360)}
+ \pgfmathsetmacro\dbp@rslangtwo
+ {Mod(\dbp@angb-\dbp@rslarbl+\dbp@rslanglesup,360)}
+ \pgfmathsetmacro\dbp@rsllen{veclen(\dbp@rsldarbl,\dbp@radius)}
+ \pgfmathsetmacro\dbp@rsldist{
+ angtodist(\dbp@rslangone,\dbp@radius)
+ +\dbp@rsllen
+ +angtodist(\dbp@rslangtwo,\dbp@radius)
}
- \dubinspathupdateparams{rsl}{\rsldist}{\rslangone}{\rsllen}{\rslangtwo}
+ \dbp@updateparams%
+ {rsl}{\dbp@rsldist}{\dbp@rslangone}{\dbp@rsllen}{\dbp@rslangtwo}
}{}
- % LSR (al et br)
- %\typeout{LSR begin}
- \distancebetween\lsrdalbr{\p{al}}{\p{br}}
- \pgfmathtruncatemacro\lsrok{(\lsrdalbr>=2*\radius)?1:0}
- \ifnumequal{\lsrok}{1}{
- \anglebetween\lsralbr{\p{al}}{\p{br}}
- \pgfmathsetmacro\lsranglesup{
- asin(\radius/\lsrdalbr*2)}
- \pgfmathsetmacro\lsrangone{Mod(\lsralbr+\lsranglesup-\anga,360)}
- \pgfmathsetmacro\lsrangtwo{Mod(\lsralbr+\lsranglesup-\angb,360)}
- \pgfmathsetmacro\lsrlen{veclen(\lsrdalbr,\radius)}
- \pgfmathsetmacro\lsrdist{
- angtodist(\lsrangone,\radius)
- +\lsrlen
- +angtodist(\lsrangtwo,\radius)
+ % LSR (al and br)
+ \dbp@distancebetween\dbp@lsrdalbr{\p{al}}{\p{br}}
+ \pgfmathtruncatemacro\dbp@lsrok{(\dbp@lsrdalbr>=2*\dbp@radius)?1:0}
+ \ifnumequal{\dbp@lsrok}{1}{
+ \dbp@anglebetween\dbp@lsralbr{\p{al}}{\p{br}}
+ \pgfmathsetmacro\dbp@lsranglesup{
+ asin(\dbp@radius/\dbp@lsrdalbr*2)}
+ \pgfmathsetmacro\dbp@lsrangone
+ {Mod(\dbp@lsralbr+\dbp@lsranglesup-\dbp@anga,360)}
+ \pgfmathsetmacro\dbp@lsrangtwo
+ {Mod(\dbp@lsralbr+\dbp@lsranglesup-\dbp@angb,360)}
+ \pgfmathsetmacro\dbp@lsrlen{veclen(\dbp@lsrdalbr,\dbp@radius)}
+ \pgfmathsetmacro\dbp@lsrdist{
+ angtodist(\dbp@lsrangone,\dbp@radius)
+ +\dbp@lsrlen
+ +angtodist(\dbp@lsrangtwo,\dbp@radius)
}
- \dubinspathupdateparams{lsr}{\lsrdist}{\lsrangone}{\lsrlen}{\lsrangtwo}
+ \dbp@updateparams%
+ {lsr}{\dbp@lsrdist}{\dbp@lsrangone}{\dbp@lsrlen}{\dbp@lsrangtwo}
}{}
-
- % LRL (al et bl)
- %\typeout{LRL begin}
- \distancebetween\lrldalbl{\p{al}}{\p{bl}}
- \pgfmathtruncatemacro\lrlok{(\lrldalbl<=4*\radius)?1:0}
- \ifnumequal{\lrlok}{1}{
- % \debug{LRL}
- \anglebetween\lrlalbl{\p{al}}{\p{bl}}
- \pgfmathsetmacro\lrlangsup{acos(\lrldalbl/\radius/4)}
- \pgfmathsetmacro\lrlangone{
- modangl(\lrlalbl+\lrlangsup,\anga-90)-(\anga-90)}
- \pgfmathsetmacro\lrlangtwo{%
- (\angb-90)-modangr(\lrlalbl+180-\lrlangsup,\angb-90)}
- \pgfmathsetmacro\lrlangthree{360-2*(90-\lrlangsup)}
- \pgfmathsetmacro\lrldist{
- angtodist(\lrlangone,\radius)
- +angtodist(\lrlangthree,\radius)
- +angtodist(\lrlangtwo,\radius)
+
+ % LRL (al and bl)
+ \dbp@distancebetween\dbp@lrldalbl{\p{al}}{\p{bl}}
+ \pgfmathtruncatemacro\dbp@lrlok{(\dbp@lrldalbl<=4*\dbp@radius)?1:0}
+ \ifnumequal{\dbp@lrlok}{1}{
+ \dbp@anglebetween\dbp@lrlalbl{\p{al}}{\p{bl}}
+ \pgfmathsetmacro\dbp@lrlangsup{acos(\dbp@lrldalbl/\dbp@radius/4)}
+ \pgfmathsetmacro\dbp@lrlangone{
+ modangl(\dbp@lrlalbl+\dbp@lrlangsup,\dbp@anga-90)-(\dbp@anga-90)}
+ \pgfmathsetmacro\dbp@lrlangtwo{%
+ (\dbp@angb-90)-modangr(\dbp@lrlalbl+180-\dbp@lrlangsup,\dbp@angb-90)}
+ \pgfmathsetmacro\dbp@lrlangthree{360-2*(90-\dbp@lrlangsup)}
+ \pgfmathsetmacro\dbp@lrldist{
+ angtodist(\dbp@lrlangone,\dbp@radius)
+ +angtodist(\dbp@lrlangthree,\dbp@radius)
+ +angtodist(\dbp@lrlangtwo,\dbp@radius)
}
- \dubinspathupdateparams{lrl}{\lrldist}{\lrlangone}{\lrlangthree}{\lrlangtwo}
+ \dbp@updateparams%
+ {lrl}{\dbp@lrldist}{\dbp@lrlangone}{\dbp@lrlangthree}{\dbp@lrlangtwo}
}{}
- % RLR (ar et br)
- %\typeout{RLR begin}
- \distancebetween\rlrdarbr{\p{ar}}{\p{br}}
- \pgfmathtruncatemacro\rlrok{(\rlrdarbr<=4*\radius)?1:0}
- \ifnumequal{\rlrok}{1}{
- \anglebetween\rlrarbr{\p{ar}}{\p{br}}
- \pgfmathsetmacro\rlrangsup{acos(\rlrdarbr/\radius/4)}
- \pgfmathsetmacro\rlrangone{
- (\anga+90)-modangr(\rlrarbr-\rlrangsup,\anga+90)}
- \pgfmathsetmacro\rlrangtwo{%
- modangl(\rlrarbr+180+\rlrangsup,\angb+90)-(\angb+90)}
- \pgfmathsetmacro\rlrangthree{360-2*(90-\rlrangsup)}
- \pgfmathsetmacro\rlrdist{
- angtodist(\rlrangone,\radius)
- +angtodist(\rlrangthree,\radius)
- +angtodist(\rlrangtwo,\radius)
+ % RLR (ar and br)
+ \dbp@distancebetween\dbp@rlrdarbr{\p{ar}}{\p{br}}
+ \pgfmathtruncatemacro\dbp@rlrok{(\dbp@rlrdarbr<=4*\dbp@radius)?1:0}
+ \ifnumequal{\dbp@rlrok}{1}{
+ \dbp@anglebetween\dbp@rlrarbr{\p{ar}}{\p{br}}
+ \pgfmathsetmacro\dbp@rlrangsup{acos(\dbp@rlrdarbr/\dbp@radius/4)}
+ \pgfmathsetmacro\dbp@rlrangone{
+ (\dbp@anga+90)-modangr(\dbp@rlrarbr-\dbp@rlrangsup,\dbp@anga+90)}
+ \pgfmathsetmacro\dbp@rlrangtwo{%
+ modangl(\dbp@rlrarbr+180+\dbp@rlrangsup,\dbp@angb+90)-(\dbp@angb+90)}
+ \pgfmathsetmacro\dbp@rlrangthree{360-2*(90-\dbp@rlrangsup)}
+ \pgfmathsetmacro\dbp@rlrdist{
+ angtodist(\dbp@rlrangone,\dbp@radius)
+ +angtodist(\dbp@rlrangthree,\dbp@radius)
+ +angtodist(\dbp@rlrangtwo,\dbp@radius)
}
- \dubinspathupdateparams{rlr}{\rlrdist}{\rlrangone}{\rlrangthree}{\rlrangtwo}
+ \dbp@updateparams%
+ {rlr}{\dbp@rlrdist}{\dbp@rlrangone}{\dbp@rlrangthree}{\dbp@rlrangtwo}
}{}
\endpgfinterruptpath
};
\endgroup
}
-
-%%% Local Variables:
-%%% mode: latex
-%%% TeX-master: t
-%%% End:
+\endinput
+%%
+%% End of file `tikzlibrarydubins.code.tex'.