我有从此链接修改的代码在 tikz 中创建具有多个连接环的环形图的最简单方法?。我的问题是,当我移动圆圈上方的形状时,圆圈下方仍然有空白。希望有人能帮我删除空白。
\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{positioning,decorations.text,calc,shapes.arrows,shadows.blur}
\usepgfmodule{nonlineartransformations}
\newlength{\mywidth}
\usepackage{fontawesome5}
\makeatletter
% from https://tex.stackexchange.com/a/434247/121799
\tikzdeclarecoordinatesystem{polar}{
\tikz@scan@one@point\relax(#1)
\polartransformation
}
% from the pgfmanual
\def\polartransformation{% from the pgfmanual section 103.4.2
\pgfmathsincos@{\pgf@sys@tonumber\pgf@x}%
\pgf@x=\pgfmathresultx\pgf@y%
\pgf@y=\pgfmathresulty\pgf@y%
} % note: the following should work with arbitrary (nonlinear) transformations
\makeatother
%from https://tex.stackexchange.com/a/433461/121799
\newsavebox\untransformedtip
\sbox\untransformedtip{\tikz{\draw [thick,-latex] (0,0) -- (0,1);}}
\begin{document}
\tikzset{rednode/.style={draw,blur shadow,fill=blue!40!black,align=center,
font=\sffamily,text opacity=0},
bluenode/.style={draw,blur shadow,fill=blue!10,align=center,
font=\sffamily,text opacity=0},
textnode/.style={draw,align=center,
font=\sffamily,text opacity=0},
}
\newcommand{\BentNode}[5][]{% see https://tex.stackexchange.com/a/56405/121799
\coordinate[#1,draw=none,opacity=0](dummy){};
\path let \p1=(dummy.center) in
\pgfextra{\settowidth{\mywidth}{\pgfinterruptpicture #5 #3\endpgfinterruptpicture}}
node[#1,minimum width={\mywidth*(2.06*28.4/\y1}](#2){};
\fill[decoration={text along path, text={|#5| #3},
raise=-2.5pt,#4},decorate] (#2.east) -- (#2.west);
}
\begin{tikzpicture}[scale=1,font=\sffamily]
\node[circle,draw,fill=blue!10,align=center,drop shadow,text=black,inner
sep=1pt,font=\small\sffamily] (sensor)
{Center};
\begin{scope}[transform shape nonlinear=true]
\pgftransformnonlinear{\polartransformation}
%% within the scope, think of the first coordinate as angle in radians rescaled
%% by the radius, i.e. an arc length, and the second as radius
%% positioning is rather convenient except that "left" and "right" lose their meaning
\node (start)at(3.15,3.3){};
\BentNode[bluenode,minimum height=16pt,left=0.5cm of start]{short}{%
Short range systems}{text color=black}{\sffamily}
\BentNode[rednode,minimum height=16pt,right=-0.5cm of start]{medium}{%
Medium range systems}{text color=white}{\sffamily \large}
%
%%
\BentNode[bluenode,minimum height=16pt,at={(3.15,5.3)}]{ultrashort}{%
Ultra short range systems}{text color=black}{\sffamily\small} %note: special characters need to be placed in curly brackets
\end{scope}
\end{tikzpicture}
\end{document}