작은 그래프에 문제가 있습니다. 노드 사이의 경로제이그리고비노드 오른쪽에 있어야 함나.
이를 수행할 수 있는 방법이 있습니까?
\documentclass[11pt]{article}
\pagestyle{empty}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning,automata}
\begin{document}
\centering
\begin{tikzpicture}[>=stealth',shorten >=1pt,node distance=2cm,on grid,initial/.style ={}]
\node[state] (0) {};
\node[state] (A) [below =of 0] {};
\node[state] (B) [below =of A] {B};
\node[state] (C) [below left =of B] {};
\node[state] (D) [below left =of C] {};
\node[state] (E) [below right =of C] {};
\node[state] (F) [below left =of D] {};
\node[state] (G) [below right =of D] {};
\node[state] (H) [below right =of E] {};
\node[state] (I) [right =of H] {I};
\node[state] (J) [yshift=-2cm,below right =of G] {J};
\node[state] (X) [yshift=-1cm,below =of J] {};
\tikzset{mystyle/.style={->}}
\path (0) edge [mystyle] node {} (A);
\path (A) edge [mystyle] node {} (B);
\path (B) edge [mystyle] node {} (C);
\path (C) edge [mystyle] node {} (D);
\path (C) edge [mystyle] node {} (E);
\path (D) edge [mystyle] node {} (F);
\path (D) edge [mystyle] node {} (G);
\path (E) edge [mystyle] node {} (H);
\path (B) edge [mystyle] node {} (I);
\path (F) edge [mystyle] node {} (J);
\path (G) edge [mystyle] node {} (J);
\path (H) edge [mystyle] node {} (J);
\path (I) edge [mystyle] node {} (J);
\path (J) edge [mystyle] node {} (X);
\tikzset{mystyle/.style={->,relative=false,in=0,out=0}}
\draw [->] (J) to [bend right=100 ] (B);
%\path (J) edge [mystyle] node {} (B); %similar problem
\end{tikzpicture}
\end{document}
답변1
중간 지점을 추가하여 오른쪽으로 이동하라고 말하세요.
j'ai rajouté la librairie:calc
et modifié le chemin: \draw [->] (J) to [out=0,in=-90] ($(I)+(1,0)$) to [out=90, in=0 ] (B);
\documentclass[11pt]{article}
\pagestyle{empty}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning,automata,calc}
\begin{document}
\centering
\begin{tikzpicture}[>=stealth',shorten >=1pt,node distance=2cm,on grid,initial/.style ={}]
\node[state] (0) {};
\node[state] (A) [below =of 0] {};
\node[state] (B) [below =of A] {B};
\node[state] (C) [below left =of B] {};
\node[state] (D) [below left =of C] {};
\node[state] (E) [below right =of C] {};
\node[state] (F) [below left =of D] {};
\node[state] (G) [below right =of D] {};
\node[state] (H) [below right =of E] {};
\node[state] (I) [right =of H] {I};
\node[state] (J) [yshift=-2cm,below right =of G] {J};
\node[state] (X) [yshift=-1cm,below =of J] {};
\tikzset{mystyle/.style={->}}
\path (0) edge [mystyle] node {} (A);
\path (A) edge [mystyle] node {} (B);
\path (B) edge [mystyle] node {} (C);
\path (C) edge [mystyle] node {} (D);
\path (C) edge [mystyle] node {} (E);
\path (D) edge [mystyle] node {} (F);
\path (D) edge [mystyle] node {} (G);
\path (E) edge [mystyle] node {} (H);
\path (B) edge [mystyle] node {} (I);
\path (F) edge [mystyle] node {} (J);
\path (G) edge [mystyle] node {} (J);
\path (H) edge [mystyle] node {} (J);
\path (I) edge [mystyle] node {} (J);
\path (J) edge [mystyle] node {} (X);
\tikzset{mystyle/.style={->,relative=false,in=0,out=0}}
\draw [->] (J) to [out=0,in=-90] ($(I)+(1,0)$) to [out=90, in=0 ] (B);
%\path (J) edge [mystyle] node {} (B); %similar problem
\end{tikzpicture}
\end{document}
답변2
키를 가지고 놀 수 있습니다 looseness=<value>
. 숫자가 클수록 곡선이 넓어집니다. 이 예에서는 이를 보여줍니다. 를 draw
다음으로 바꾸십시오.
대사:
\foreach \x [evaluate=\x as \c using \x*30] in {0.2,0.4,...,3}
{\draw[->,red!\c!blue] (J) to[out=30-20*\x,in=20*\x-30,looseness=\x] (B);}
효과:
느슨함이 증가하면(0.2에서 3으로) 색상이 파란색에서 빨간색으로 희미해집니다.