답장. MWE

답장. MWE

edge어쩌면 이 질문은 순진할 수도 있지만 언제 ? 대신 사용해야 하며 경로 기존 draw 명령의 동일한 출력을 복제하는 데 --어떻게 사용할 수 있습니까 ?edge--

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning,shapes.geometric,calc}
\begin{document}
    \begin{tikzpicture}[>=latex',very thick,align=center]

        \tikzset{%
    block/.style= {draw, rectangle, text width=2cm,minimum height=1cm,align=center}
    }

    \node [block]  (start1) {Start1};
    \node [block, right = 1cm of start1.east] (end1) {End1};
    \node [block, below= 2cm of start1]  (start2) {Start2};
    \node [block, right = 1cm of start2] (end2) {End2};

    \path[draw,->] 
    (start1.north) -- ++(0,1cm) -- ++(3.25cm,0) -- (end1.north);
    \path[draw,->] 
    (start2.north) edge ++(0,1cm) edge ++(3.25cm,0) edge (end2.north);
    \end{tikzpicture}
\end{document}

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

답변1

이 답변은 모든 세부 사항을 다루려고 시도하는 것이 아니라 일부 차이점에 대한 '첫 번째 통과' 설명을 제공하려는 것입니다.

edge기본 경로와 완전히 다른 속성을 가질 수 있는 별도의 경로를 구성합니다. 기본 경로의 점과 달리 가장자리는 아무데도 이동하지 않습니다.

실제로 일어나는 일은 아니지만,마치이런 일이 발생합니다:

  1. path 로 시작한다고 가정해 보겠습니다 \path [draw=blue, -{Stealth[]}] (0,0).

    • 지금까지 우리는 실제로 아무데도 가지 않았습니다. 우리는 이 경로가 그려져야 하고 특정 화살표 끝이 있어야 한다고 말했습니다. 경로의 시작점을 원점으로 이동했습니다.
  2. 그래서 우리는 계속합니다 ++(1,0).

    • 이렇게 하면 아무것도 그리지 않은 상태에서 오른쪽으로 1단위 이동합니다.
  3. 이제 우리는 추가합니다 -- ++(1,0).

    • 그러면 오른쪽으로 1이 더 이동하고 이번에는 경로가 그려집니다. 여기에 를 넣으면 ;화살표 끝이 여기에 표시됩니다. 하지만 우리는 그렇게 하지 않으므로 팁은 아직 필요하지 않습니다.

    3단계

  4. 이제 기본 경로를 계속하는 대신 edge ++(0,1}.

    • TikZ는 주요 경로 건설을 일시적으로 중단하고 작은 측면 경로를 만들기 위해 우회하는 것으로 생각할 수 있습니다. 이 경로는 현재 위치에서 1단위 위로 이동합니다. 기본적으로 기본 경로의 속성을 상속하므로 파란색 화살표가 표시됩니다. 작업이 완료 되면 edgeTikZ는 전환을 시작한 지점으로 돌아갑니다. 그것은 학교에서 아이들을 데리러 가는 길에 빵집에서 빵을 사러 골목에 잠시 들러 있는 것과 같습니다. 빵을 구한 후에는 메인 스트리트로 돌아와 학교를 계속합니다.

    4단계

  5. 이제 -- ++(1,0)경로에 추가합니다.

    • 그럼 우회로에서 돌아왔으니 오른쪽 방향으로 계속 직선을 이어가겠습니다.

    5단계

  6. 다음으로 edge [draw=red, -{Circle[fill=green]}] ++(0,1).

    • 이것은 또 다른 전환이지만 이번에는 가장자리를 빨간색으로 그리고 화살표 끝을 변경합니다. 물론 이것은 우리의 전환에만 적용됩니다.

    6단계

    • 일반 경로에서는 이것이 가능하지 않습니다. 예를 들어 일부는 빨간색으로, 일부는 파란색으로 만들 수는 없지만 edge기본 경로 및 edge경로의 일부로 그려진 다른 것과는 상당히 다른 속성을 가질 수 있습니다. 같은 \path명령.
  7. 마지막으로 를 사용하여 경로를 완성합니다 -- ++(1,0);.

    7단계

전체 코드:

\documentclass[tikz,border=10pt,multi]{standalone}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}[x=25mm, y=25mm, line width=1pt]
  \path [draw=blue, -{Stealth[]}] (0,0) ++(1,0) -- ++(1,0) edge ++(0,1) -- ++(1,0) edge [draw=red, -{Circle[fill=green]}] ++(0,1) -- ++(1,0);
  \foreach \i/\j in {(0,0)/{(0,0)},(1,0)/{++(1,0)},(2,0)/{++(1,0)},(3,0)/{++(1,0)},(4,0)/{++(1,0)}} \path \i node [below, ] {\j};
  \foreach \i/\j in {(2,1)/{++(0,1)},(3,1)/{++(0,1)}} \path \i node [right, ] {\j};
\end{tikzpicture}
\end{document}

답장. MWE

질문의 예의 경우 물론 다음과 같이 쓸 수 있습니다.

\documentclass[tikz,border=10pt,multi]{standalone}
\usetikzlibrary{arrows.meta,positioning}
\begin{document}
\begin{tikzpicture}
  [
    >=Latex,
    very thick,
    align=center,
    block/.style= {draw, rectangle, text width=2cm,minimum height=1cm,align=center},
  ]
  \node [block]  (start1) {Start1};
  \node [block, right = 1cm of start1.east] (end1) {End1};
  \node [block, below= 2cm of start1]  (start2) {Start2};
  \node [block, right = 1cm of start2] (end2) {End2};
  \path [draw, ->] (start1.north) -- ++(0,1cm) -- ++(3.25cm,0) -- (end1.north);
  \path [draw, ->] (start2.north) -- ++(0,1cm) -- ++(3.25cm,0) -- (end2.north);
\end{tikzpicture}
\end{document}

생산하는

두 번의 유턴

하지만 이 복합기를 그대로 사용하는 방법을 알고 싶으실 것으로 생각됩니다.

위의 node 및 path 명령은 다음 2개의 경로로 대체될 수 있습니다.

  \path [draw, ->] node [block]   (start1) {Start1} (start1.north) |- ++(3.25cm,1cm) node [block, right=1cm of start1] (end1)  {End1} -- (end1);
  \path [draw, ->] node [block, below= 2cm of start1]   (start2) {Start2} (start2.north) |- ++(3.25cm,1cm) node [block, right=1cm of start2] (end2)  {End2} -- (end2);

이는 동일한 출력을 생성하거나 더 간결하지만 덜 명확하게는 다음과 같습니다.

  \coordinate (start0);
  \foreach \i [evaluate=\i as \j using int(\i-1), evaluate=\j as \k using \j*2] in {1,2}
  \path [draw, ->] node [block, below=\k cm of start\j]   (start\i) {Start\i} (start\i.north) |- ++(3.25cm,1cm) node [block, right=1cm of start\i] (end\i)  {End\i} -- (end\i);

관련 정보