'to'opearation에 대해 알고있는 TikZ 'midway'

Nov 29 2020

이것은 다음과 같은 종류입니다 . 마지막 "현재 좌표"를 나타내는 TikZ 좌표

그 질문에 대한 대답은 to대신에 를 사용 하여 "현재 좌표"를 참조하는 데 --사용할 수 있음을 제안 \tikztostart합니다 node[midway]. 를 사용하려고 할 때까지 잘 작동합니다 . 원래 예에서 확장 :

\documentclass[tikz,margin=1cm]{standalone}
\begin{document}
\begin{tikzpicture}
 \coordinate (origin) at (0,0);
 \draw (origin) -| (1,1) -- (1,1-|origin) % this uses --
   node [midway,above] {hi};
 \begin{scope}[xshift=2cm]
  \coordinate (origin) at (0,0);
  \draw (origin) -| (1,1) to (\tikztostart-|origin) % this uses to
    node [midway,above] {hi};
 \end{scope}
\end{tikzpicture}
\end{document}

출력 (왼쪽이 정확함) :

그것은 이전 경로 세그먼트에 midway대해 알지 못하고 to가져 오는 midway것 같습니다.

midway노드를 to하위 경로 에 연결해야한다는 것을 어떻게 알 수 있습니까? 아니면이 사건에 대처하는 이전 질문에 대한 또 다른 대답?

답변

3 M.AlJumaily Nov 29 2020 at 11:00

Ti k Zling 이 제공하는 대답 은 훌륭하며 또한 다음과 같은 순서를 간단히 바꿀 수 있습니다 \node[]{...}.

\draw (origin) -| (1,1) to (\tikztostart-|origin) node [midway,above] {hi};

...에

\draw (origin) -| (1,1) to node [midway,above] {hi} (\tikztostart-|origin);

우리는 심지어 꺼낼 수 midway티타늄 등 K 의 사이에 끼워 두 좌표 사이에 기본적으로 경로의 중간에 조정됩니다 Z를 :

\draw (origin) -| (1,1) to node [above] {hi} (\tikztostart-|origin);

또 다른 팁은 pos정확한 배치를 위해 0.0에서 1.0 사이의 소수 인수를 허용하는 키 를 사용하는 것 입니다.

\documentclass[tikz,margin=1cm]{standalone}
\begin{document}
\begin{tikzpicture}
 \coordinate (origin) at (0,0);
 \draw (origin) -| (1,1) -- (1,1-|origin)
   node [midway,above] {hi};
 \begin{scope}[xshift=2cm]
  \coordinate (origin) at (0,0);
  \draw (origin) -| (2,1) to node [above] {hi} (\tikztostart-|origin);
 \end{scope}
  \begin{scope}[xshift=5cm]
  \coordinate (origin) at (0,0);
  \draw (origin) -| (2,1) to node [pos=0.25, above] {hi} (\tikztostart-|origin);
 \end{scope}
\end{tikzpicture}
\end{document}
3 Noname Nov 29 2020 at 10:54

당신의 관찰은 정확합니다. 한 가지 가능한 해결책을 보여주는 M. Al Jumaily의견 이 이미 있습니다. 경 사진 경로에 대해서도 가장자리 레이블을 멋지게 배치하기 때문에 틀림없이 더 편리한 또 다른 솔루션은 edge label키 를 사용하는 것 입니다. 당신이 발생하는 문제가과 아무 상관이 있습니다 \tikztostart하지만, 정말 만에 to.

\documentclass[tikz,margin=1cm]{standalone}
\begin{document}
\begin{tikzpicture}
 \begin{scope}[local bounding box=1]
  \coordinate (origin) at (0,0);
  \draw (origin) -| (1,1) -- (1,1-|origin)
    node [midway,above] {hi};
 \end{scope}  
 \begin{scope}[xshift=2.5cm,local bounding box=2]
  \coordinate (origin) at (0,0);
  \draw (origin) -| (1,1) coordinate (tmp) to (tmp-|origin)
   node [midway,above] {hi};
 \end{scope}
 \begin{scope}[xshift=5cm,local bounding box=3]
  \coordinate (origin) at (0,0);
  \draw (origin) -| (1,1) to[edge label'={hi}] (\tikztostart-|origin);
 \end{scope}
 %
 \path foreach \X [count=\Y] in {--,to,to w/ edge label}
 {(\Y.south) node[below=1em,font=\sffamily]{\X}};
\end{tikzpicture}
\end{document}