これが私のコードです:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows, automata}
\begin{document}
\begin{tikzpicture}[
> = stealth, % arrow head style
shorten > = 1pt, % don't touch arrow head to node
auto,
node distance = 3cm, % distance between nodes
semithick % line style
]
\tikzstyle{every state}=[
draw = black,
thick,
fill = white,
minimum size = 4mm
]
\node[state] (a) at (0,4) {A};
\node[state] (b) at (4,4) {B};
\node[state] (c) at (2,2) {C};
\node[state] (d) at (0,0) {D};
\node[state] (e) at (4,0) {E};
\path[->] (a) edge node {$e_1$} (b);
\path[->] (b) edge node {$e_2$} (e);
\path[->] (a) edge node {$e_3$} (c);
\path[->] (c) edge node {$e_4$} (e);
\path[->] (d) edge node {$e_5$} (e);
\path[->] (a) edge node {$e_6$} (d);
\path[->, style={bend left = 145}] (b) edge node {$e_7$} (d);
\end{tikzpicture}
\end{document}
次の図のように、エッジ e_7 をノード E の周りで曲げようとしています。
e_7 の曲がり具合を制御するにはどうすればよいですか?
答え1
制御点を の少し南東に置いたベジェ曲線を使用することもできますE
。
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows, automata,calc}
\begin{document}
\begin{tikzpicture}[
> = stealth, % arrow head style
shorten > = 1pt, % don't touch arrow head to node
auto,
node distance = 3cm, % distance between nodes
semithick % line style
]
\tikzstyle{every state}=[
draw = black,
thick,
fill = white,
minimum size = 4mm
]
\node[state] (a) at (0,4) {A};
\node[state] (b) at (4,4) {B};
\node[state] (c) at (2,2) {C};
\node[state] (d) at (0,0) {D};
\node[state] (e) at (4,0) {E};
\path[->] (a) edge node {$e_1$} (b);
\path[->] (b) edge node {$e_2$} (e);
\path[->] (a) edge node {$e_3$} (c);
\path[->] (c) edge node {$e_4$} (e);
\path[->] (d) edge node {$e_5$} (e);
\path[->] (a) edge node {$e_6$} (d);
% V--V - change here to adjust
\path[->,draw] (b) .. controls ($(e)+(2,-1)$) .. node {$e_7$} (d);
\end{tikzpicture}
\end{document}
答え2
Phelpe Oleinik の回答の代替案:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows, automata,calc}
\begin{document}
\begin{tikzpicture}[
> = stealth, % arrow head style
shorten > = 1pt, % don't touch arrow head to node
auto,
node distance = 3cm, % distance between nodes
semithick % line style
]
\tikzstyle{every state}=[
draw = black,
thick,
fill = white,
minimum size = 4mm
]
\node[state] (a) at (0,4) {A};
\node[state] (b) at (4,4) {B};
\node[state] (c) at (2,2) {C};
\node[state] (d) at (0,0) {D};
\node[state] (e) at (4,0) {E};
\path[->] (a) edge node {$e_1$} (b);
\path[->] (b) edge node {$e_2$} (e);
\path[->] (a) edge node {$e_3$} (c);
\path[->] (c) edge node {$e_4$} (e);
\path[->] (d) edge node {$e_5$} (e);
\path[->] (a) edge node {$e_6$} (d);
\draw[->] (b) to[in= 45,out=-45] ($(e)+(0.5,-0.5)$)node[right]{$e_7$} to[in= -45,out=-135] (d);
\end{tikzpicture}
\end{document}
答え3
looseness
ここで使用できるオプションもあります:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows, automata}
\begin{document}
\begin{tikzpicture}[
> = stealth, % arrow head style
shorten > = 1pt, % don't touch arrow head to node
auto,
node distance = 3cm, % distance between nodes
semithick % line style
]
\tikzstyle{every state}=[
draw = black,
thick,
fill = white,
minimum size = 4mm
]
\node[state] (a) at (0,4) {A};
\node[state] (b) at (4,4) {B};
\node[state] (c) at (2,2) {C};
\node[state] (d) at (0,0) {D};
\node[state] (e) at (4,0) {E};
\path[->] (a) edge node {$e_1$} (b);
\path[->] (b) edge node {$e_2$} (e);
\path[->] (a) edge node {$e_3$} (c);
\path[->] (c) edge node {$e_4$} (e);
\path[->] (d) edge node {$e_5$} (e);
\path[->] (a) edge node {$e_6$} (d);
\path[->, style={bend left = 70, looseness = 2}] (b) edge node {$e_7$} (d);
\end{tikzpicture}
\end{document}