Tikz 中的思维导图兄弟角度

Tikz 中的思维导图兄弟角度

我正在使用以下 tikz 示例(原始来源

梅威瑟:

% Author: Till Tantau
% Source: The PGF/TikZ manual
\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{mindmap,trees}
\begin{document}
\pagestyle{empty}
\begin{tikzpicture}
  \path[mindmap,concept color=black,text=white]
    node[concept] {Computer Science}
    [clockwise from=0]
    child[concept color=green!50!black] {%
      node[concept] {practical}
      [clockwise from=90]
      child {node[concept] {algorithms} }
      child {node[concept] {data structures} }
      child {node[concept] {pro\-gramming languages} }
      child {node[concept] {software engineer\-ing} }
    }  
    child[concept color=blue] {%
      node[concept] {applied}
      [clockwise from=-30]
      child {node[concept] {databases} }
      child {node[concept] {WWW} }
    }
    child[concept color=red] {node[concept] {technical} }
    child[concept color=orange] {node[concept] {theoretical} };
\end{tikzpicture}\end{document}

输出:

在此处输入图片描述

每个孩子之间相隔 60 度。我猜你用以下方法控制这个间距:sibling angle=60(这个想法来自这里),但我不能用它来改变间距。有人可以修改 MWE 来说明如何使用它吗?如果您可以为每个分支(包括主分支)使用不同的角度,我将不胜感激。谢谢。

编辑: 似乎有些令人困惑,因为人们认为我想随机地将事物分开。我想要的是这样的,如果一个节点有两个子节点,我想将间距定义为 180 度;如果它有 3 个子节点,我希望间距为 120 度;如果是 4 个子节点,间距为 90 度;如果是 5 个子节点,间距为 72 度,依此类推。照这样,我必须有 6 个子节点,这样看起来才不会奇怪。

答案1

该样式set angles for level用于附加正确的sibling distance级别#1

它既可以在level样式内部使用,也可以在.listed 选项中使用。

用法应根据实际文档中的用例而有所不同。最好附加set angles for levelgrow cyclic创建special grow cyclic使用此解决方案的自定义。

代码

\documentclass[tikz,convert=false]{standalone}
\usetikzlibrary{mindmap,trees,graphs}
\tikzset{
  set angles for level/.style={level #1/.append style={sibling angle=360/\the\tikznumberofchildren}},
  level/.append style={set angles for level=#1}% solution 1
}
\begin{document}
\begin{tikzpicture}
  \path[
    mindmap,
    concept color=black,
    text=white,
    grow cyclic,
    nodes=concept,
%    set angles for level/.list={1,...,4}% solution 2
  ]
  node {Computer Science} 
    child[concept color=green!50!black] {%
      node {practical}
      child {node {algorithms} }
      child {node {data structures} }
      child {node {pro\-gramming languages} }
      child {node {software engineer\-ing} }
      child {node {and a fifth}}
    }  
    child[concept color=blue] { node[concept] {applied}
      child {node {databases} }
      child {node {WWW} }
    }
    child[concept color=red] {node {technical} }
    child[concept color=orange] {node {theoretical} };
\end{tikzpicture}
\end{document}

输出

在此处输入图片描述

相关内容