TikZ 中是否有用于绘制对象继承树的库?

TikZ 中是否有用于绘制对象继承树的库?

这似乎是一件很常见的事情,但搜索“树”、“语言”、“对象”、“继承”和/或“父”这些词会返回与我无关的问题。

简而言之, 我要这个:

继承树

但是,如果我有 BV 而不是 BD 类,我宁愿不进去手动移动所有内容。目前,我正在使用节点,我的类正在飞出页面。

有没有什么方法可以解决这个问题。

梅威瑟:

\usepackage{tikz}
\usetikzlibrary{arrows,decorations.pathmorphing,backgrounds,positioning,fit,petri,calc,shadows}
\begin{document}
    \begin{tikzpicture}[
        neuronModel/.style={%
            general shadow={%
                shadow scale=1,
                shadow xshift=0.75ex,
                shadow yshift=0.75ex,
                opacity=0.75,
                fill=black!50,
                every shadow
            },
            rounded corners,
            thick,
            draw=blue!90,
            fill=blue!35,
            thick,
            inner ysep=2pt,
            inner xsep=2pt
        }]

        % \foreach \neuronIndex/\neuronLabel in {1/Bidirectional Neuron Model , 10/Unidirectional Neuron Model}
            % \node at (\neuronIndex,10)[draw=black,fill=blue]{\neuronLabel};

        \node[neuronModel,align=center] (neuronModel1) {Bidirectional\\
                                                                                    Neuron Model};
        \node[neuronModel,right=0.5cm of neuronModel1,align=center] (neuronModel2) {Unidirectional\\
                                                                                    Neuron Model};
        \node[neuronModel,right=0.5cm of neuronModel2,align=center] (neuronModel3) {Postprocessing\\
                                                                                    Neuron Model};
        \node[neuronModel,right=0.5cm of neuronModel3,align=center] (neuronModel4) {Preprocessing\\
                                                                                    Neuron Model};
        \node[neuronModel,right=0.5cm of neuronModel4,align=center] (neuronModel5) {Stats\\
                                                                                    Neuron Model};
        \node[neuronModel,right=0.5cm of neuronModel5,align=center] (neuronModel6) {Visual\\
                                                                                    Neuron Model};
    \end{tikzpicture}
\end{document}

这是结果图。我需要再添加大约 5 个类,所以这种方法不够。

长继承图

答案1

这个tikz-qtree包可能可以满足你的要求。下面是一个粗略的例子:

\documentclass{article}
\usepackage{tikz}
\usepackage{tikz-qtree}

\begin{document}

\begin{tikzpicture}
\tikzset{level distance=50pt}
\Tree [.\node[draw]{class A};
    [.\node[draw]{class B}; ]
    [.\node[draw]{class C}; ]
    [.\node[draw]{class D};
        \node[draw]{class E};
    ]
]
\end{tikzpicture}

\end{document}

在此处输入图片描述

正如 Alan Munn 所指出的,通过预先指定节点样式可以进一步简化代码:

\begin{tikzpicture}[every tree node/.style=draw]
\tikzset{level distance=50pt}
\Tree [.{class A}
    [.{class B} ]
    [.{class C} ]
    [.{class D}
        {class E}
    ]
]
\end{tikzpicture}

相关内容