使用 TikZ 绘制 Bruhat--Tits 树

使用 TikZ 绘制 Bruhat--Tits 树

我不是 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}

输出

在此处输入图片描述

相关内容