![如何在 Tikz Mindmap 中对圆圈/菱形/箭头进行惰性和严格定位?](https://linux22.com/image/352959/%E5%A6%82%E4%BD%95%E5%9C%A8%20Tikz%20Mindmap%20%E4%B8%AD%E5%AF%B9%E5%9C%86%E5%9C%88%2F%E8%8F%B1%E5%BD%A2%2F%E7%AE%AD%E5%A4%B4%E8%BF%9B%E8%A1%8C%E6%83%B0%E6%80%A7%E5%92%8C%E4%B8%A5%E6%A0%BC%E5%AE%9A%E4%BD%8D%EF%BC%9F.png)
我正在尝试使用 Tikz Mindmap 进行功能行为分析,其中我需要以下单元和连接。
- 菱形符号 - 严格位于最左边
- 圆圈符号-惰性定位
- 连接 - 菱形和圆圈之间的单箭头和双箭头
- 圆形和菱形之间的连接定位严格
条款
lazy
- 将任意位置置于结果上greedy
- 位于特定位置,这里位于最左侧(=最左边)left-most
- 最左侧
你可以偷懒放置圆圈的位置,但菱形应该放在最左边。我认为这种方法对线程来说太贪婪了在 Tikz 中将节点定位在左下方对所有事物都有明确的定位。
线程的12节点代码示例Tikz Mindmap - 如何获得更多节点只有圆圈的地方,是懒洋洋地放圆圈的一个很好的起点。
\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}
操作系统: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}