2

TikZ で循環グラフを作成したいとします。可変数のノードを使用して、v0、v1、...、v_n-1 というラベルを付けて、任意の n (5 など) を指定します。

TikZ で \foreach コマンドを使用して、(1) ノードを定義し、(2) ノードを接続できるようにしたいと考えています。v_i を v_(i+1) に、v_i を v_{i+2} に接続できるようにしたいと思います。

\foreach \i in {0, ..., 4} {\path (\i*72:3) node (v\i) {};}

ノードを完全に構築します。でも、線を引きたいときは、

\foreach \i \in {0, ..., 3} { \draw (v\i) -- (v{\i+1}); }????

動作しません。そうでもない

\foreach \i / \j in {0/1, ..., 3/4} { \draw (v\i) -- (v{\j}); }

「no such shape v0」などのエラーが表示されます。

これは完全に簡単にできるはずですが、方法がわかりません。助言がありますか?

フォローアップとして、 v_i と v_{i+4} などを 1 つの\foreachコマンドで接続でき、TikZ/pgf が剰余演算をスピルオーバーを心配することなく実行できるようにするとよいでしょう。

4

2 に答える 2

2

別の解決策として、Steve Tjoa によるコードの編集を実現しました。

\documentclass[tikz,border=1mm]{standalone}
\usetikzlibrary{arrows}

\begin{document}
\begin{tikzpicture}[thick]
\foreach \x in {0,...,4}{%
  \node [circle, draw] at (\x*72:3) {$v_{\x}$};
  \draw [->] (\x*72+10:3) arc (\x*72+10:\x*72+62:3);
}
\end{tikzpicture}
\end{document}

出力のスクリーンショット

于 2015-12-14T22:27:44.700 に答える
2

これは私のために働いた:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes,fit,arrows,positioning}
\tikzstyle{vertex} = [circle, draw, thick, text centered]
\tikzstyle{edge} = [draw, thick,->]
\begin{document}
\begin{tikzpicture}[scale=1]
  \foreach \x in {0,...,6}
    \node[vertex] (\x) at (\x*360/7:3) {v\x};
  \foreach \x/\y in {0/1,1/2,2/3,3/4,4/5,5/6,6/0}
    \draw[edge] (\x) to (\y);
\end{tikzpicture}
\end{document}

円グラフ

構文{0/1,...,5/6}はうまくいきませんでした。しかし、私は良い解決策を見つけるために少し時間を費やしましたが、まだ完全に満足していません.

于 2010-10-18T05:07:28.240 に答える