TikZの木構造でパスカルの三角形
TikZの木構造を利用してパスカルの三角形を描く。
木構造を利用すれば,ノードの座標のことを考える必要がなくなるのが嬉しい。
さて,うまくいくのか?
0段目と1段目
sample.tex
\documentclass[dvipdfmx]{jsarticle}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node {1}
child { node {1} }
child { node {1} };
\end{tikzpicture}
\end{document}
sample.tex
\documentclass[dvipdfmx]{jsarticle}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node {1}
child { node {1} }
child { node {1} };
\end{tikzpicture}
\end{document}
2段目を追加
sample.tex
\documentclass[dvipdfmx]{jsarticle}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node{1}
child { node {1}
child { node {1} }
child { node {2} }
}
child { node {1}
child { node {2} }
child { node {1} }
};
\end{tikzpicture}
\end{document}
sample.tex
\documentclass[dvipdfmx]{jsarticle}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node{1}
child { node {1}
child { node {1} }
child { node {2} }
}
child { node {1}
child { node {2} }
child { node {1} }
};
\end{tikzpicture}
\end{document}
「2」が重なっていて,というより微妙にずれていて,微妙に濃い。
そこで,一方を空にしてみると,
sample.tex
\documentclass[dvipdfmx]{jsarticle}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node{1}
child { node {1}
child { node {1} }
child { node {2} }
}
child { node {1}
child { node {} }
child { node {1} }
};
\end{tikzpicture}
\end{document}
枝の長さがおかしくなってしまった。
よく考えてみると,phantom
を適用するのが“正解”か。
sample.tex
\documentclass[dvipdfmx]{jsarticle}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node{1}
child { node {1}
child { node {1} }
child { node {2} }
}
child { node {1}
child { node {\phantom{2}} }
child { node {1} }
};
\end{tikzpicture}
\end{document}
こんな調子で3段目追加
phantom
を適用したノードには子ノードは設けない。(コードが)冗長になるので。
sample.tex
\documentclass[dvipdfmx]{jsarticle}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node{1}
child { node {1}
child { node {1}
child { node {1} }
child { node {3} }
}
child { node {2}
child { node {\phantom{3}} }
child { node {3} }
}
}
child { node {1}
child { node {\phantom{2}} }
child { node {1}
child { node {\phantom{3}} }
child { node {1} }
}
};
\end{tikzpicture}
\end{document}
大きさの変更
ノードの間隔を変えることで図の大きさを変えるには,
縦はlevel distance
,横はsibling distance
を指定すればよい。初期設定はどちらも15mmのようだ。
sample.tex
\documentclass[dvipdfmx]{jsarticle}
\usepackage{tikz}
\newcommand{\mypascal}{%
\node{1}
child { node {1}
child { node {1}
child { node {1} }
child { node {3} }
}
child { node {2}
child { node {\phantom{3}} }
child { node {3} }
}
}
child { node {1}
child { node {\phantom{2}} }
child { node {1}
child { node {\phantom{3}} }
child { node {1} }
}
};
}
\begin{document}
\begin{tikzpicture}
\mypascal
\end{tikzpicture}
%
\begin{tikzpicture}[
level distance=8mm
]
\mypascal
\end{tikzpicture}
%
\begin{tikzpicture}[
level distance=8mm, sibling distance=10mm
]
\mypascal
\end{tikzpicture}
\end{document}
おしまい
Author And Source
この問題について(TikZの木構造でパスカルの三角形), 我々は、より多くの情報をここで見つけました https://qiita.com/ryutaatkagawanct/items/d01ed4a6e0e61bed45bc著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .