
グラフを描きたいのですが、tikz マトリックス頂点を描画し、配列からエッジを追加したいと思います。次のコードを試しました:
\documentclass{article}
\usepackage{tikz,pgfmath}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix (w) [nodes={circle,draw,scale=0.66}, matrix of nodes, row sep=2em, column sep=0.5em]{
1&2&3\\
&4&5\\
&6\\
};
\def\V{{"w-1-1","w-1-2","w-1-3","w-2-2","w-2-3","w-3-2"}}
%\draw[->] (\V[1]) to (\V[2]); %Line A
%\node at (1,1) {\pgfmathparse{\V[2]}\pgfmathresult}; %Line B
\draw[->] (\pgfmathparse{\V[1]}\pgfmathresult) to (\pgfmathparse{\V[2]}\pgfmathresult); %Line C
\end{tikzpicture}
\end{document}
私は試したラインA最初はうまくいきませんでした。配列に正しくアクセスするには、pdfmathparseしかし、コードはコンパイルされません(ただしB線正常に動作します。(pgfmathresultは、描く期待しています。
追記: 元々の動機は、グラフ ペブリングを簡潔に説明することでした。いずれにせよ、最終的なコードと結果を添付しました。
\documentclass{article}
\usepackage{tikz,pgfmath,xstring,algorithm}
\usetikzlibrary{matrix}
\newcommand{\Configuration}[6]{%A fixed graph
\begin{minipage}{.2\textwidth}%1
\begin{tikzpicture}
\matrix (w) [nodes={circle,draw,scale=0.6}, matrix of nodes, row sep=2em, column sep=0.5em,ampersand replacement=\&]{
1\&2\&3\\
\&4\&5\\
\&6\\
};
\def\V{{"w-1-1","w-1-2","w-1-3","w-2-2","w-2-3","w-3-2"}}%the mapping
\foreach \x/\y/\z in {{1/4/#1},{2/4/#2},{3/4/#3},{3/5/#4},{4/6/#5},{5/6/#6}}%pebbling
\pgfmathsetmacro{\X}{\V[\x-1]}
\pgfmathsetmacro{\Y}{\V[\y-1]}
\draw[->] (\X) to node {\ifthenelse{\z=0}{}{$\bullet$}} (\Y);
\end{tikzpicture}
\end{minipage}
}
\begin{document}
\begin{figure}
\centering
\Configuration{0}{0}{0}{0}{0}{0}
\Configuration{1}{0}{0}{0}{0}{0}
\Configuration{1}{1}{0}{0}{0}{0}
\Configuration{1}{1}{1}{0}{0}{0}
\Configuration{1}{1}{1}{0}{1}{0}
\Configuration{1}{1}{0}{0}{1}{0}
\Configuration{1}{0}{0}{0}{1}{0}
\Configuration{0}{0}{0}{0}{1}{0}
\Configuration{0}{0}{0}{1}{1}{0}
\Configuration{0}{0}{0}{1}{1}{1}
\Configuration{0}{0}{0}{0}{1}{1}
\end{figure}
\end{document}
答え1
何を望んでいるのかは分かりませんが、これで\pgfmathsetmacro
問題は解決すると思います:
\documentclass [border=2mm]{standalone}
\usepackage{tikz}
\usepackage{tikz,pgfmath}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix (w) [nodes={circle,draw,scale=0.66}, matrix of nodes, row sep=2em, column sep=0.5em]{
1&2&3\\
&4&5\\
&6\\
};
\def\V{{"w-1-1","w-1-2","w-1-3","w-2-2","w-2-3","w-3-2"}}
\pgfmathsetmacro{\start}{\V[1]}
\pgfmathsetmacro{\finish}{\V[2]}
\draw[->] (\start) to (\finish); %Line C
\end{tikzpicture}
\end{document}