ダイヤモンドの西の角からダイヤモンドの東の角までのループを図のように作るにはどうすればよいでしょうか?
形
コード
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\usepackage{amssymb}
\begin{document}
\begin{tikzpicture}[->, >=stealth, auto, semithick,
node distance=3cm,shorten >=2pt,shorten <=2pt,
mynode/.style={fill=white,draw,
diamond,thick,inner sep=5pt}]
\node[mynode] (A) {$1$};
\node[mynode] (B)[right of=A] {$2$};
\node[mynode] (C)[right of=B] {$3$};
\node[mynode] (D)[right of=C] {$4$};
\path[black](A.east) edge[bend left] node{S} (B.west)
(B.west) edge[bend left] node{U} (A.east)
(B.east) edge node{E} (C.west)
(C.east) edge node{S} (D.west)
(B) edge[loop above] node{P} (B)
(B) edge[loop below] node{C} (B)
(C) edge[loop above] node{N} (C);
\end{tikzpicture}
\end{document}
出力
答え1
ここでは、3 つの別々の を使用する 1 つの方法を示します\draw
。
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\usepackage{amssymb}
\begin{document}
\begin{tikzpicture}[->, >=stealth, auto, semithick,
node distance=3cm,shorten >=2pt,shorten <=2pt,
mynode/.style={fill=white,draw,
diamond,thick,inner sep=5pt}]
\node[mynode] (A) {$1$};
\node[mynode] (B)[right of=A] {$2$};
\node[mynode] (C)[right of=B] {$3$};
\node[mynode] (D)[right of=C] {$4$};
\path[black](A.east) edge[bend left] node{S} (B.west)
(B.west) edge[bend left] node{U} (A.east)
(B.east) edge node{E} (C.west)
(C.east) edge node{S} (D.west);
\draw (B.west) to[out=110,in=70,looseness=3] node{P} (B.east);
\draw (B.west) to[out=-110,in=-70,looseness=3] node[swap]{C} (B.east);
\draw (C.west) to[out=110,in=70,looseness=3] node{N} (C.east);
\end{tikzpicture}
\end{document}
答え2
arrows.meta
ライブラリ、bending
、quotes
のarc
代わりにを使用する代替方法loop
:
\documentclass[tikz, border=5mm]{standalone}
\usetikzlibrary{arrows.meta, bending, quotes, shapes.geometric}
\begin{document}
\begin{tikzpicture}[-{Stealth[bend]}, auto, semithick,
node distance=3cm,
shorten >=2pt, shorten <=2pt,
mynode/.style={diamond,draw, thick, minimum size=8mm, inner sep=0pt}
]
\node[mynode] (A) {$1$};
\node[mynode] (B)[right of=A] {$2$};
\node[mynode] (C)[right of=B] {$3$};
\node[mynode] (D)[right of=C] {$4$};
\path[black](A.east) edge[bend left, "S"] (B.west)
(B.west) edge[bend left, "U"] (A.east)
(B.east) edge["E"] (C.west)
(C.east) edge["S"] (D.west);
\draw ([yshift= 2pt] B.west) arc (235:-55:0.7) node[midway,below] {P};
\draw ([yshift=-2pt] B.west) arc (-235:55:0.7) node[midway,above] {C};
\draw (C.west) arc (235:-55:0.7) node[midway,below] {N};
\end{tikzpicture}
\end{document}
arc
半径の決定にはend angle
以下の関係が考慮されました。
arc
およびはP
、C
ノード 1 と 2 の間の曲げ線と重ならないように、2pt 垂直方向にシフトされます。