我不是 TikZ 的常规用户,我想知道是否有一种快速绘制树的方法,看起来像
?
(该图片似乎是从 JP Serre 的关于树木的书的第 71 页拍摄的)。
这是我进行探究的一些动机:我正在编写的一个项目中使用了一些基本的一级布鲁哈特-蒂茨理论,我觉得如果配有一些图片会更好(我使用树而不是矩阵计算的主要原因是为了让事情变得更容易理解)。
答案1
该trees
库提供了grow cyclic
密钥/增长功能。
几个级别的样式和一些child foreach
路径操作符为您提供以下内容。
代码
\documentclass[tikz]{standalone}
\usetikzlibrary{trees}
\begin{document}
\begin{tikzpicture}[
grow cyclic,
level distance=1cm,
level/.style={
level distance/.expanded=\ifnum#1>1 \tikzleveldistance/1.5\else\tikzleveldistance\fi,
nodes/.expanded={\ifodd#1 fill\else fill=none\fi}
},
level 1/.style={sibling angle=120},
level 2/.style={sibling angle=90},
level 3/.style={sibling angle=90},
level 4/.style={sibling angle=45},
nodes={circle,draw,inner sep=+0pt, minimum size=2pt},
]
\path[rotate=30]
node {}
child foreach \cntI in {1,...,3} {
node {}
child foreach \cntII in {1,...,2} {
node {}
child foreach \cntIII in {1,...,2} {
node {}
child foreach \cntIV in {1,...,2} {
node {}
child foreach \cntV in {1,...,2} {}
}
}
}
};
\end{tikzpicture}
\end{document}