Tikz Mindmap で円/ダイヤモンド/矢印を緩やかかつ厳密に配置するにはどうすればよいですか?

Tikz Mindmap で円/ダイヤモンド/矢印を緩やかかつ厳密に配置するにはどうすればよいですか?

私は Tikz Mindmap を使用して機能行動分析を実行しようとしていますが、次のユニットと接続が必要です。

  1. ダイヤモンド記号 - 厳密に左端にある
  2. 円記号 - 遅延配置
  3. 接続 - ダイヤモンドと円の間の単一矢印と二重矢印
  4. 円とダイヤモンドの間の接続位置は厳密です

条項

  • lazy- 結果上の任意の場所に配置
  • greedy- 特定の位置、ここでは最も左側(=左端
  • left-most- 一番左側

円の位置は気にしなくてもいいですが、ダイヤモンドは左端に貪欲に配置する必要があります。このアプローチはスレッド上で貪欲すぎると思います。Tikz のノードを左下に配置するすべてのものの明確な位置付け。

スレッドの12ノードコード例Tikz マインドマップ - ノードを増やす方法円だけの場合は、円をゆっくり配置するための良い出発点になります。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{mindmap}
\begin{document}
\begin{tikzpicture}
   %% TODO
   % 1. Put a diamond at left most

   % 2. Make 12 circles lazily
   %https://tex.stackexchange.com/a/7520/13173
  \path[mindmap,concept color=blue,text=white,
    level 1 concept/.append style=
      {every child/.style={concept color=blue!70},sibling angle=-30}]
      node[concept] {\Huge\bfseries TikZ}[clockwise from=0]
        child foreach \i in {1,...,12} {node[concept]{\LARGE\bfseries\i}};

   % 3. Create connections between diamond and circles

\end{tikzpicture}
\end{document}

OS: Debian 8.7

答え1

lazyここでのまたは が何を意味するのか全く分かりませんgreedy

ダイヤモンドを配置する最も簡単な方法は、マインドマップの後にダイヤモンドを描くことです。

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{mindmap,shapes.geometric,arrows.meta,positioning}
\begin{document}
% cwestiwn éo Léopold Hertz 준영: http://tex.stackexchange.com/questions/364288/how-to-do-lazy-and-strict-positioning-of-circles-diamonds-arrows-in-tikz-mindmap
\begin{tikzpicture}
   %http://tex.stackexchange.com/a/7520/13173
   \path
   [mindmap,
   concept color=blue,
   text=white,
   level 1 concept/.append style={every child/.style={concept color=blue!70}, sibling angle=-30}
   ]
   node [concept, font=\Huge\bfseries] {Ti\emph{k}Z}
   [clockwise from=0]
   child foreach \i in {1,...,12} {node (c\i) [concept, font=\LARGE\bfseries]{\i}};
   \node (d) [left=of c7, text width=50mm, fill, diamond, draw, magenta] {};
   \foreach \i [evaluate=\i as \j using {\i>6 ? -45-(12-\i)*15 : 55+\i*15}, evaluate=\i as \k using { \i>6 ? -90+(12-\i)*5 : 90-((\i-1)*5)} ] in {1,...,12} \draw [gray, ultra thick, -Latex] (d) [out=\k, in=\j] to (c\i);
\end{tikzpicture}
\end{document}

ダイヤモンドと矢

関連情報