라텍스에서 투표 시퀀스를 사용하여 카탈로니아 경로 다이어그램 생성

라텍스에서 투표 시퀀스를 사용하여 카탈로니아 경로 다이어그램 생성

카탈로니아 길의 사진은 다음과 같습니다.

여기에 이미지 설명을 입력하세요

이는 어떤 점 (a,b)에서 시작하고 단계 (1,1)과 (1,-1)을 사용하는 Z^2의 격자 경로입니다. 이는 투표 시퀀스 111-1-1...으로 디코딩(시작점을 알 수 있음)될 수 있습니다. 여기서 1은 up(1,1)에 해당하고 -1은 down(1,-1)에 ​​해당합니다. tex를 사용하여 투표 순서를 입력하고 해당 카탈로니아어 경로를 얻는 방법이 있습니까?

답변1

간단 foreach하게 할 수 있습니다:

\documentclass[tikz,border=2mm]{standalone}

\begin{document}
\begin{tikzpicture}
\draw[->] (0,-1)--++(90:4);
\draw[->] (-1,0)--++(0:12);
\coordinate (aux) at (0,0);
\foreach \i in {1,-1,1,1,1,-1,1,-1,-1,1,-1}
    \draw[->] (aux)--++(1,\i) coordinate (aux);
\end{tikzpicture}
\end{document}

여기에 이미지 설명을 입력하세요

답변2

대략 다음과 같습니다(축은 없지만).

\documentclass[tikz,border=5]{standalone}
\usetikzlibrary{decorations.pathreplacing}
\tikzset{arrow path/.style={decoration={show path construction,
  lineto code={
    \path [->, every lineto/.try] 
      (\tikzinputsegmentfirst) -- (\tikzinputsegmentlast);
  }}, decorate},
  every lineto/.style={draw, thick, ->},
  lineto/.style={every lineto/.append style={#1}},
  ballot sequence/.style={arrow path, .. ballot sequence=#1@@;},
  .. ballot sequence/.code args={#1#2#3;}{%
    \if#1@\else
      \if#1-
      \tikzset{symbol #1#2/.try, .. ballot sequence=#3;}%
    \else
      \tikzset{symbol #1/.try, .. ballot sequence=#2#3;}%
    \fi\fi%
  },
  symbol -1/.style={insert path={ -- ++(1,-1) }},
  symbol 1/.style={insert path={ -- ++(1,1) }}
}
\begin{document} 
\begin{tikzpicture}[>=stealth]
\path [lineto=red]   (5,0) [ballot sequence={1-1}];
\path [lineto=green] (3,3) [ballot sequence={111-1-1-1}];
\path [lineto=blue]  (0,6) [ballot sequence={1-1111-11-1-11-1-1}];
\end{tikzpicture}
\end{document}

여기에 이미지 설명을 입력하세요

관련 정보