我可以使用新命令轻松绘制单个圆形扇区,例如
\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}
输出: