![배경 패턴으로서의 이미지 - tikz 마인드맵의 연결 막대](https://rvso.com/image/405383/%EB%B0%B0%EA%B2%BD%20%ED%8C%A8%ED%84%B4%EC%9C%BC%EB%A1%9C%EC%84%9C%EC%9D%98%20%EC%9D%B4%EB%AF%B8%EC%A7%80%20-%20tikz%20%EB%A7%88%EC%9D%B8%EB%93%9C%EB%A7%B5%EC%9D%98%20%EC%97%B0%EA%B2%B0%20%EB%A7%89%EB%8C%80.png)
이는 다음의 후속 조치입니다.이전 질문.
다음 설정을 가정합니다.
\documentclass[margin=10pt]{standalone}
\usepackage[dvipsnames,svgnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{mindmap,shadows}
\usepackage{fontspec}
\tikzset{golden/.style={
fill=none,draw,
path picture={\node[every node/.style={}] at (path picture bounding box.center)
{\includegraphics[width=#1,height=#1]{GoldLeaf.jpg}};},%},
},golden/.default=4cm
}
\begin{document}
\begin{tikzpicture}[mindmap,
font=\large\bfseries\sffamily,
grow cyclic,
every node/.style={concept, circular drop shadow,
%minimum size=0pt,
execute at begin node=\hskip0pt},
%concept color=magenta!70!black,
root concept/.append style={
font=\huge\sffamily\bfseries,text width=8cm,concept color=Gold,
golden=8cm},
level 1/.append style={sibling angle=360/10,
font=%\color{Seashell}
\bfseries\sffamily
\LARGE,
level distance=35em,
inner sep=0pt,
text width=4cm,
sibling distance=1cm,
concept color=Goldenrod,nodes={golden=4cm}
}]
\node [root concept] {Root Concept}
child {node {Node}}
child {node {Node}}
child {node {Node}}
child {node {Node}}
child {node {Node}}
child {node {Node}}
child {node {Node}}
child {node {Node}}
child {node {Node}}
child {node {Node}};
\end{tikzpicture}
\end{document}
다음과 같은 출력이 생성됩니다.
사용자 Schrödinger의 고양이는 "를 사용한 다른 접근 방식을 제안했습니다 path fading
. (배경) 이미지가 있는 커넥터에 대해 경로 페이딩을 어떻게 사용할 수 있습니까?
답변1
이렇게 하면 연결 막대에 그래픽을 사용하는 스타일이 추가됩니다. 사용법은
use image for connecting bar=<graphics>
이를 위해서는 어린이의 컨셉 컬러를 설정해야 하며,
every child/.style={concept color=<color>},
색상이 후광에 사용되는 곳입니다.
\documentclass[margin=10pt]{standalone}
\usepackage[dvipsnames,svgnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{mindmap,shadows}
\usepackage{fontspec}
\tikzset{node background pic/.style 2 args={
fill=none,draw,
path picture={\node[every node/.style={}] at (path picture bounding box.center)
{\includegraphics[width=#1,height=#1]{#2}};},%},
},golden/.style={node background pic={#1}{GoldLeaf.jpg}},
golden/.default=4cm}
\makeatletter
\tikzset{use image for connecting bar/.code={\def\tikz@lib@shade@pic{%
% We have to draw the shading...
% compute start point:
\pgftransformreset%
% compute the distance
\pgfpointdiff{\pgfpointanchor{\tikz@lib@save@start}{center}}{\pgfpointanchor{\tikz@lib@save@target}{center}}%
\pgfmathsetmacro\pgfutil@tempa{1+10*sqrt(0.01*\pgf@x*\pgf@x+0.01*\pgf@y*\pgf@y)%
-\tikz@lib@saved@start@radius-\tikz@lib@saved@end@radius}
%
\pgf@process{\pgfpointnormalised{\pgfpointdiff{\pgfpointanchor{\tikz@lib@save@start}{center}}{\pgfpointanchor{\tikz@lib@save@target}{center}}}}%
\edef\tikz@lib@mm@vec{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\pgfmathsetlength\pgf@xc{\tikz@lib@saved@start@radius}
\pgf@process{\pgfpointadd{\pgfpointtransformed{\pgfpointanchor{\tikz@lib@save@start}{center}}}
{\pgfpointscale{\pgf@sys@tonumber{\pgf@xc}}{\tikz@lib@mm@vec}}}
\edef\tikz@lib@mm@start{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\pgfmathsetlength\pgf@xc{\tikz@lib@saved@end@radius}
\pgf@process{\pgfpointdiff{\tikz@lib@mm@start}{\pgfpointadd{\pgfpointtransformed{\pgfpointanchor{\tikz@lib@save@target}{center}}}
{\pgfpointscale{-\pgf@sys@tonumber{\pgf@xc}}{\tikz@lib@mm@vec}}}}
\edef\tikz@lib@mm@end{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\pgftransformshift{\tikz@lib@mm@start}
\pgflowlevelsynccm
\pgf@process{\tikz@lib@mm@vec}
{
\pgf@xa=-\pgf@x%
\pgftransformcm{\pgf@sys@tonumber{\pgf@x}}{\pgf@sys@tonumber{\pgf@y}}%
{\pgf@sys@tonumber{\pgf@y}}{\pgf@sys@tonumber{\pgf@xa}}%
{\pgfpointorigin}%
\pgf@process{\pgfpointtransformed{\tikz@lib@mm@end}}%
\expandafter
}
\edef\tikz@lib@mm@length{\the\pgf@x}%
\pgf@process{\tikz@lib@mm@vec}
\pgf@ya=-\pgf@y%
\pgftransformcm{\pgf@sys@tonumber{\pgf@x}}{\pgf@sys@tonumber{\pgf@y}}%
{\pgf@sys@tonumber{\pgf@ya}}{\pgf@sys@tonumber{\pgf@x}}%
{\pgfpointorigin}%
% Y scale:
\pgfmathsetlength\pgf@y{\tikz@lib@saved@start@radius}%
\pgfmathsetlength\pgf@ya{\tikz@lib@saved@end@radius}%
\ifdim\pgf@y<\pgf@ya%
\pgf@y=\pgf@ya%
\fi%
\pgf@y=0.01992528\pgf@y%
\pgftransformyscale{\pgf@sys@tonumber{\pgf@y}}%
\pgfpathrectanglecorners
{\pgfpoint{-\tikz@lib@saved@start@radius}{-50bp}}
{\pgfpoint{1pt}{50bp}}
\pgfsetfillcolor{tikz@switch@from}
\pgfusepath{fill}
\pgfpathrectanglecorners
{\pgfpoint{\tikz@lib@mm@length+\tikz@lib@saved@end@radius}{-50bp}}
{\pgfpoint{\tikz@lib@mm@length-1pt}{50bp}}
\pgfsetfillcolor{tikz@switch@to}
\pgfusepath{fill}
% X scale:
\pgf@x=\tikz@lib@mm@length%
\pgf@x=0.009962\pgf@x%
\pgftransformxscale{\pgf@sys@tonumber{\pgf@x}}%
\pgftransformxshift{50bp}
\pgflowlevelsynccm%
%\pgfuseshading{tikz@shade@bar}%<removed and the following is added
\pgfnode{rectangle}{center}{\includegraphics[width=\pgfutil@tempa pt]{#1}}{}{}%
}}}%
\makeatother
\begin{document}
\begin{tikzpicture}[mindmap,
font=\large\bfseries\sffamily,
grow cyclic,
every node/.style={concept, circular drop shadow,
execute at begin node=\hskip0pt},
root concept/.append style={
font=\huge\sffamily\bfseries,text width=8cm,concept color=Gold,
golden=8cm},
level 1/.append style={sibling angle=360/10,
font=\bfseries\sffamily\LARGE,
level distance=35em,
inner sep=0pt,
text width=4cm,
sibling distance=1cm,nodes={golden=4cm}
},every child/.style={concept color=Goldenrod},
use image for connecting bar=GoldLeaf.jpg]
\node [root concept] {Root Concept}
child {node {Node}}
child {node {Node}}
child {node {Node}}
child {node {Node}}
child {node {Node}}
child {node {Node}}
child {node {Node}}
child {node {Node}}
child {node {Node}}
child {node {Node}};
\end{tikzpicture}
\end{document}
실제로 이것은 나보다 더 좋아 보인다.
전체적인 배경 그림이 하나인 버전입니다. 그림자 같은 것들은 평소처럼 작동하지 않습니다. 구문은 다음과 같습니다
\begin{Mindmap}[<options>]{<graphics>}
<mindmap code>
\end{Mindmap}
예는 다음과 같습니다.
\documentclass[margin=10pt]{standalone}
\usepackage[dvipsnames,svgnames]{xcolor}
\usepackage{tikz}
\usepackage{environ}
\usetikzlibrary{mindmap,shadows,calc}
\usepackage{fontspec}
\NewEnviron{Mindmap}[2][]{\begin{tikzfadingfrompicture}[name=temp]%
\begin{scope}[transparent!0,mindmap,#1,text=white,concept color=white,
root concept/.append style={concept,concept color=white},
every child/.append style={concept,concept color=white},
local bounding box=Back]
\BODY
\end{scope}
\path let \p1=($(Back.north east)-(Back.south west)+(0.3,0.3)$)
in \pgfextra{\xdef\myx{\x1}\xdef\myy{\y1}};
\end{tikzfadingfrompicture}%
\begin{tikzpicture}[]
\begin{scope}[mindmap,#1,local bounding box=X,opacity=0]%
\BODY
\end{scope}
\fill[white] (X.south west) rectangle (X.north east);
\path[overlay] (X.center) node[opacity=0,inner sep=0pt] (img)
{\includegraphics{#2}}
[path fading=temp,fit fading=false,
fading transform={shift={(X.center)}}]
let \p1=($(X.north east)-(X.south west)+(0.3,0.3)$),
\p2=($(img.north east)-(img.south west)+(0.3,0.3)$) in
[/utils/exec=\pgfmathsetmacro{\myscale}{max(\x1/\x2,\y1/\y2)}%
\typeout{\myscale,\x1,\y1,\x2,\y2}]
(X.center) node[inner sep=0pt,anchor=center] (img2){%
\includegraphics[scale=\myscale]{#2}};
\begin{scope}[mindmap,#1,opacity=0,text opacity=1]%
\BODY
\end{scope}
\end{tikzpicture}%
}
\begin{document}
\begin{Mindmap}[font=\large\bfseries\sffamily,
grow cyclic,
every node/.style={concept, circular drop shadow,
execute at begin node=\hskip0pt},
root concept/.append style={
font=\huge\sffamily\bfseries,text width=8cm
},
level 1/.append style={sibling angle=360/10,
font=\bfseries\sffamily\LARGE,
level distance=35em,
inner sep=0pt,
text width=4cm,
sibling distance=1cm,
}]{GoldLeaf.jpg}
\node [root concept] {Root Concept}
child {node {Node}}
child {node {Node}}
child {node {Node}}
child {node {Node}}
child {node {Node}}
child {node {Node}}
child {node {Node}}
child {node {Node}}
child {node {Node}}
child {node {Node}};
\end{Mindmap}
\end{document}