迁移到dhxdl

This commit is contained in:
王闯
2026-08-24 17:26:17 +08:00
commit 5d5507bd28
29 changed files with 10894 additions and 0 deletions
+118
View File
@@ -0,0 +1,118 @@
% Spatiotemporal conflict and its resolution by spatial decoupling.
% (a)(c) coupled single-channel paths -> the empty truck must wait;
% (b)(d) decoupled dual-channel paths -> both maneuvers proceed in parallel.
\documentclass[border=1pt]{standalone}
\input{figstyle}
\begin{document}
\begin{tikzpicture}[scale=0.0872]
% ======================================================================
% geometry shared by the two spatial panels
% ======================================================================
\def\sitebnd{
(2,6) -- (14,3.5) -- (30,3) -- (40,6) -- (45,13) -- (41,22)
-- (28,25) -- (14,22) -- (2,17)
}
% channel spine from the entrance to the loading bay
\def\spine{(2,11.5) .. controls (14,10.5) and (24,11.5) .. (34,15.5)}
% ---------------------------------------------------------------- panel a
\begin{scope}[shift={(0,0)}]
\fill[fillc, opacity=0.55] \sitebnd -- cycle;
\fill[white] \sitebnd -- cycle;
\draw[siteline] \sitebnd;
% conflict zone: both paths occupy the same channel
\fill[confc, opacity=0.16]
(4,8.6) .. controls (14,7.6) and (24,8.6) .. (33,12.6)
-- (35,18.4) .. controls (24,14.4) and (14,13.4) .. (4,14.4) -- cycle;
% the two paths coincide on the spine
\draw[parkpath] \spine;
\draw[exitpath, dash pattern=on 2.4pt off 1.6pt]
(34,15.5) .. controls (24,11.5) and (14,10.5) .. (2,11.5);
% loading pose
\fill[sitec] (34,15.5) circle (0.7);
\node[annt, sitec, above right] at (34.2,15.9) {$\boldsymbol{\eta}_\text{load}$};
\node[annt, confc] at (18,17.4) {conflict zone};
\node[panel] at (23.5,-1.8) {(a) coupled};
\end{scope}
% ---------------------------------------------------------------- panel b
\begin{scope}[shift={(52,0)}]
\fill[fillc, opacity=0.55] \sitebnd -- cycle;
\fill[white] \sitebnd -- cycle;
\draw[siteline] \sitebnd;
% virtual centerline and the two offset guidance lines
\draw[ctrline] \spine;
\draw[parkpath] (2,8.6) .. controls (14,7.6) and (24,8.6) .. (33.4,13.0);
\draw[exitpath] (34.6,18.0) .. controls (24,14.4) and (14,13.4) .. (2,14.4);
% channel width W between the two guidance lines
\draw[dimline] (16,8.0) -- (16,13.8);
\node[annt, fill=white, inner sep=0.3pt] at (16,10.9) {$W$};
\fill[sitec] (34,15.5) circle (0.7);
\node[annt, sitec, above right] at (34.2,15.9) {$\boldsymbol{\eta}_\text{load}$};
\node[annt, centc] at (7.5,19.3) {$\varLambda_\text{center}$};
\node[panel] at (23.5,-1.8) {(b) decoupled};
\end{scope}
% ======================================================================
% time-line panels
% ======================================================================
\def\tlen{40}
% ---------------------------------------------------------------- panel c
\begin{scope}[shift={(0,-24)}]
\draw[->, thin@] (2,0) -- (2+\tlen+3,0) node[annt, right] {$t$};
\draw[thin@] (2,0) -- (2,10.5);
% loaded truck leaves
\fill[exitc, opacity=0.75] (4,6.2) rectangle (18,8.6);
\node[annt, white] at (11,7.4) {outbound};
% empty truck waits, then parks
\fill[sitec, opacity=0.28] (4,2.6) rectangle (18,5.0);
\node[annt, sitec] at (11,3.8) {waiting};
\fill[parkc, opacity=0.75] (18,2.6) rectangle (32,5.0);
\node[annt, white] at (25,3.8) {inbound};
% excavator idle window
\draw[decorate, decoration={brace, amplitude=1.6pt, raise=0.6pt},
line width=0.4pt, confc] (18,1.9) -- (4,1.9);
\node[annt, confc] at (11,-1.2) {$T_\text{wait}>0$};
\node[annt, exitc, left] at (3.6,7.4) {L};
\node[annt, parkc, left] at (3.6,3.8) {E};
\node[panel] at (23.5,-5.4) {(c) coupled timing};
\end{scope}
% ---------------------------------------------------------------- panel d
\begin{scope}[shift={(52,-24)}]
\draw[->, thin@] (2,0) -- (2+\tlen+3,0) node[annt, right] {$t$};
\draw[thin@] (2,0) -- (2,10.5);
\fill[exitc, opacity=0.75] (4,6.2) rectangle (18,8.6);
\node[annt, white] at (11,7.4) {outbound};
\fill[parkc, opacity=0.75] (4,2.6) rectangle (18,5.0);
\node[annt, white] at (11,3.8) {inbound};
\draw[decorate, decoration={brace, amplitude=1.6pt, raise=0.6pt},
line width=0.4pt, corrc] (18,1.9) -- (4,1.9);
\node[annt, corrc] at (11,-1.2) {in parallel};
% the cycle ends earlier by the eliminated waiting time
\draw[thin@, sitec, dash pattern=on 1.4pt off 1.2pt] (32,1.9) -- (32,9.4);
\draw[dimline, confc] (18,9.8) -- (32,9.8);
\node[annt, confc, fill=white, inner sep=0.3pt] at (25,9.8) {saved};
\node[annt, exitc, left] at (3.6,7.4) {L};
\node[annt, parkc, left] at (3.6,3.8) {E};
\node[panel] at (23.5,-5.4) {(d) decoupled timing};
\end{scope}
\end{tikzpicture}
\end{document}