Как создать карту разума в латексе с гексагональной формой? - PullRequest
1 голос
/ 03 ноября 2019

Я ломаю голову над созданием карты мыслей в LaTex / TikZ, в которой узлы отображаются не в виде прямоугольников, кругов или эллипсов. Есть ли способ создать карту ума, используя шестиугольники как детей? Дети должны быть связаны с углами. Родители и дети должны содержать короткий текст

Я пробовал использовать пакет фигур.

Заранее спасибо, Петр

1 Ответ

2 голосов
/ 03 ноября 2019

Изменить фигуры дочерних узлов легко, вы можете просто использовать regular polygon, regular polygon sides=6 из библиотеки форм. Однако изменить связь между корневым узлом и шестиугольниками сложнее (по крайней мере, для нас, простых смертных, это могут сделать мастера tikz, см. https://tex.stackexchange.com/a/514772/36296).

Вместо этого вы можете эмулировать карту ума с обычными узлами. :

\documentclass[margin=0.3cm]{standalone}

\usepackage{tikz}
\usetikzlibrary{shapes}


\begin{document}

\begin{tikzpicture}
\def\nchilds{5}
\node[fill=blue,text=white,circle,minimum size=3cm] at (0,0) (root) {Root};
\foreach \x [count=\xi] in {test1, test2, test3, test4, test5}{
    \shade[left color=red,right color=blue,shading angle={(360/\nchilds*\xi)-90}] 
        ({(360/\nchilds*\xi)+3}:3.2cm) to [in=160,out=10,relative] 
        ({(360/\nchilds*\xi)+10}:1.45cm) -- ({(360/\nchilds*\xi)-10}:1.45cm) to [in=170,out=20,relative]  ({(360/\nchilds*\xi)-3}:3.2cm);
    \node[regular polygon, regular polygon sides=6,fill=red,minimum width=2cm,shape border uses incircle,shape border rotate=(360/\nchilds*\xi)] at (360/\nchilds*\xi:4cm) {\x};
}
\end{tikzpicture}


\end{document}

enter image description here

(большое спасибо @marmot за подсказку о shape border rotate!)

...