我正在尝试使用 TikZ 重现以下二项式树:
我找不到树本身的正确比例,它看起来有点不对称。
我的最小代码:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\draw[thick] (0,0) circle (.5cm);
% –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– %
\coordinate (a1) at (.45,.2);
\coordinate (a2) at (4,1.0875);
\draw[thick] (4.5,1.2125) circle (.5cm);
\coordinate (a3) at (5,1.3375);
\coordinate (a4) at (8,2.0875);
\draw[thick] (8.5,2.2125) circle (.5cm);
\coordinate (a5) at (9,2.3375);
\coordinate (a6) at (12.45,3.2);
\draw[thick] (12.95,3.325) circle (.5cm);
\draw[thick] (a1) -- (a2);
\draw[thick] (a3) -- (a4);
\draw[thick] (a5) -- (a6);
% –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––%
\coordinate (a7) at (.45,-.2);
\coordinate (a8) at (4,-1.0875);
\draw[thick] (4.5,-1.2125) circle (.5cm);
\coordinate (a9) at (5,-1.3375);
\coordinate (a10) at (8,-2.0875);
\draw[thick] (8.5,-2.2125) circle (.5cm);
\coordinate (a11) at (9,-2.3375);
\coordinate (a12) at (12.45,-3.2);
\draw[thick] (12.95,-3.325) circle (.5cm);
\draw[thick] (a7) -- (a8);
\draw[thick] (a9) -- (a10);
\draw[thick] (a11) -- (a12);
% –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– %
\coordinate (a13) at (4.935,.-0.95);
\draw[thick] (8.5,0) circle (.5cm);
\coordinate (a14) at (8.05,-0.2);
\coordinate (a15) at (8.95, .2);
\coordinate (a16) at (12.45, .7387);
\draw[thick] (12.95,0.85) circle (.5cm);
\draw[thick] (a13) -- (a14);
\draw[thick] (a15) -- (a16);
\coordinate (a17) at (4.95,1);
\coordinate (a18) at (8.05,.2);
\draw[thick] (a17) -- (a18);
\draw[thick] (12.95,-1.2125) circle (.5cm);
\draw[thick] (8.95,-.2) -- (12.475, -1.05);
\end{tikzpicture}
\end{document}
答案1
您可以使用以下短代码获得这棵树pstricks
:
\documentclass[pstricks]{standalone}
\usepackage{pst-node}
\begin{document}
\psset{unit=1cm}
\begin{pspicture}(1,-0.6)(1,5.6)
$ \begin{psmatrix}[mnode=R, rowsep=1.2em, colsep=2cm]
& & & & [name=C] 8\\ & & & [name=B] 4\\ & & [name=A] 2 & & [name=D] 2 \\%
& [name=I] 1 & & [name=J] 1 \\
& &[name=a] \frac{1}{2} & & [name=d] \frac{1}{2} \\ & & & [name=b] \frac{1}{4}\\ & & & & [name=c] \frac{1}{8}
\end{psmatrix}
\foreach \c in {I, A, B, C, a, b, c, J, D, d}{\pscircle(\c) {1.2em}}
\foreach \s\t in \foreach \s\t in {I/A, A/B, B/C, I/a, a/b, b/c, A/J, a/J, B/D, J/D, b/d, J/d}{\ncline[nodesep=0.84em]{\s}{\t}}\ncline[nodesep=0.9em]{\s}{\t}}
\uput{1.4em}[u](C){H_{3,3}=0}
\uput{1.3em}[u](D){H_{3, 2}=\frac{1}{2}}
\uput{1.4em}[u](d){H_{3, 1}=2}
\uput{1.2em}[u](c){H_{3, 0}=\frac{19}{8}} $
\end{pspicture}
\end{document}
答案2
以及相关短代码forest
:
\documentclass[margin=3mm]{standalone}
\usepackage{forest}
\newcommand\nd[1]{\texttt{#1}}
\begin{document}
\begingroup
\tikzset{every label/.style = {font=\footnotesize,inner sep=0pt, anchor=south west}}
\begin{forest}
for tree = {
circle, draw, minimum size=2em, inner sep=0pt,
math content,
grow'=0,
calign = fixed edge angles, calign angle=40,
}
[1
[2,name=n11, calign=last%i
[2,
[8, label={$H_{3,3}=0$}]
[,phantom]
[2, label={$H_{3,2}=\frac{1}{2}$}, name=n31]
]
[,phantom]
]
[,phantom
[1,name=n21
]
]
[\frac{1}{2},name=n12,calign=first%p
[,phantom]
[\frac{1}{2}, name=n22 %h
[\frac{1}{2}, label={$H_{3,1}=2$},name=n32]
[,phantom]
[\frac{1}{8}, label={$H_{3,0}=\frac{19}{8}$}]
]
]
]
\draw (n11) -- (n21) (n12) -- (n21)
(n21) -- (n31) (n21) -- (n32);
\end{forest}
\endgroup
\end{document}