1

I have this code that I modified from this link Simplest way to create a ring diagram in tikz with multiple connected rings?. My problem is when I shifted the shapes above the circle, there was still white space under the circle. Hope someone can help me remove the space.

\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}

Diana
  • 1,285
  • 7
  • 12

0 Answers0