如何改变扇形的圆弧角?

如何改变扇形的圆弧角?

我可以使用新命令轻松绘制单个圆形扇区,例如

\documentclass[12pt]{standalone}

\usepackage{tikz}
\usetikzlibrary {shapes.geometric}

\newcommand*{\eAngle}[2]{%
   \begin{tikzpicture}[anchor=base, baseline=-0.65ex]
       \node[circular sector, fill=#1, rotate=#2, minimum size=0.1cm] at (0,0) {};
   \end{tikzpicture}%
}

\begin{document}
  \eAngle{red}{45} 
\end{document}

这让我可以设置扇区的颜色和旋转。这些会插入到段落中,例如

This is an angle: \eAngle{red}{45}

我应该补充一点,我不在乎它是如何完成的,我碰巧使用了扇形,因为我认为那是可以使用的东西。但任何其他解决方案都是可以接受的。

使用圆形扇形,我不知道如何改变扇形的弧宽。我以为我可以使用关键的圆形扇形角度,但这似乎也会改变扇形的大小,因为角度变小会使扇形变长。下图显示了所需效果,半径相同但角度不同:

在此处输入图片描述

关于如何做到这一点有什么建议吗?

下面是使用上述命令的另一个示例。旋转方向保持不变,为零(第二个参数),但尖端的角度(第三个参数)逐渐增加:

  Here is a pie \eAngle{red}{0}{10}, \eAngle{red}{0}{20}, \eAngle{red}{0}{40}, \eAngle{red}{0}{60}, \eAngle{red}{0}{80}

这样就得到了下图。注意,随着尖端角度的增大,扇形半径会变短(从左到右)。我希望角度改变时半径固定。

以下不是我想要的,我想要一个固定的半径(看起来像下面图片中的长度)

在此处输入图片描述

答案1

代码

\documentclass{article}
\usepackage{tikz}
\tikzset{
  @circular sector/radius/.initial=1,
  @circular sector/tip/.initial=0,    % where the tip points to (i.e. the rotation)
  @circular sector/angle/.initial=90, % the opening of the sector
  @circular sector/.search also=/tikz,
  @circular sector/.code=\pgfqkeys{/tikz/@circular sector}{#1},
  circular sector/.style={
    @circular sector={#1},
    rotate=\pgfkeysvalueof{/tikz/@circular sector/tip},
    insert path={
      \pgfextra{% values we need more than once
        \pgfmathsetmacro\halfAng{(\pgfkeysvalueof{/tikz/@circular sector/angle})/2}%
        \pgfmathsetmacro\radius{\pgfkeysvalueof{/tikz/@circular sector/radius}}}
      (0:{2*\radius*sin(\halfAng)/(3*rad(\halfAng))}) -- +(180-\halfAng:\radius)
      arc[start angle=180-\halfAng, end angle=180+\halfAng, radius=\radius]
      -- cycle}}}
\newcommand*\eAngle[1][]{% \fontdimen22\textfont2 is “vertical center”
                         % this puts the center of the sector in the “middle”
  \tikz[baseline=+-\fontdimen22\textfont2]\fill[circular sector={#1}];}
\begin{document}
Points to $ 30^\circ$ with angle of $10^\circ$: \eAngle[red, tip=30, angle=10]

Points to $250^\circ$ with angle of $45^\circ$:
                                   \eAngle[blue, tip=250, angle=45, radius=.7]

\foreach[evaluate={\c=\ang/3.6;}] \ang in {0, 10, ..., 359}{
  \eAngle[red!\c!blue, angle=30, tip=\ang]}
\end{document}

输出

在此处输入图片描述

答案2

像这样:

在此处输入图片描述

使用此代码(改编自您的代码):

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary {shapes.geometric}

\newcommand*{\eAngle}[4]{%
    \begin{tikzpicture}[anchor=base, baseline=-0.65ex]
        \node[circular sector,circular sector angle=#3, fill=#1, text=white, rotate=#2, minimum size=.1cm] at (0,0) {#4};
    \end{tikzpicture}%
}

\begin{document}
    \eAngle{red}{0}{30}{Testo}  \eAngle{brown}{135}{90}{20\%} \eAngle{cyan}{90}{20}{Testo di prova}
\end{document}

附录:代码变化:

\begin{document}
    \eAngle{red}{0}{20}{\hspace*{1cm}}  \eAngle{brown}{135}{90}{\;\;\;} \eAngle{cyan}{0}{120}{\hspace*{1.5cm}}
\end{document}

输出:

在此处输入图片描述

相关内容