使用 tikz 填充环形扇区

使用 tikz 填充环形扇区

我想使用 tikz 绘制以下图形:

在此处输入图片描述

不使用任何包是否可以绘制此图?我可以绘制坐标系以及两个圆弧,但如何填充圆弧之间的空间以及圆弧之间的连接给我带来了麻烦。

答案1

tikz如果要使用 Ti,必须加载包Z:)) 所以我认为您不允许加载任何附加包。

在以下建议中,我似乎没有使用任何包。但是,我确实加载了一个。\documentclass[tikz]{standalone}已经加载了tikz


角度是用quotesangles库绘制的。它们不是包,所以我希望这个答案是有效的。

\documentclass[tikz]{standalone}
\usetikzlibrary{quotes,angles}
\begin{document}
\begin{tikzpicture}
\draw[fill=black!20] (140:1) coordinate (beta) arc (140:-70:1) coordinate (alpha) -- (-70:2) arc (-70:140:2) -- cycle;
\draw (-2.5,0)--(2.5,0) coordinate (x);
\draw (0,-2.5)--(0,2.5);
\fill (1,0) circle (1pt) node[below right] {$c^a$} (2,0) circle (1pt) node[below right] {$c^b$};
\coordinate (o) at (0,0);
\pic[draw,<-,"$\alpha$",angle radius=0.4cm,angle eccentricity=1.4] {angle=alpha--o--x};
\pic[draw,->,"$\beta$",angle radius=0.6cm,angle eccentricity=1.3] {angle=x--o--beta};
\end{tikzpicture}
\end{document}

在此处输入图片描述


但是,如果你不想加载单个库,你可以使用arcnode[midway],尽管这有点困难

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\draw[fill=black!20] (140:1) coordinate (beta) arc (140:-70:1) coordinate (alpha) -- (-70:2) arc (-70:140:2) -- cycle;
\draw (-2.5,0)--(2.5,0) coordinate (x);
\draw (0,-2.5)--(0,2.5);
\fill (1,0) circle (1pt) node[below right] {$c^a$} (2,0) circle (1pt) node[below right] {$c^b$};
\coordinate (o) at (0,0);
\draw[->] (0.4,0) arc (0:-70:0.4) node[midway,below right,inner sep=1pt] {$\alpha$};
\draw[->] (0.6,0) arc (0:140:0.6) node[below right,inner sep=0pt] {$\beta$};
\end{tikzpicture}
\end{document}

在此处输入图片描述


推荐方法:

\documentclass[tikz]{standalone}
\usetikzlibrary{quotes,angles}
\begin{document}
\begin{tikzpicture}
\draw[fill=black!20] (140:1) coordinate (beta) arc (140:-70:1) coordinate (alpha) -- (-70:2) arc (-70:140:2) -- cycle;
\draw (-2.5,0)--(2.5,0) coordinate (x);
\draw (0,-2.5)--(0,2.5);
\fill (1,0) circle (1pt) node[below right] {$c^a$} (2,0) circle (1pt) node[below right] {$c^b$};
\coordinate (o) at (0,0);
\pic[draw,<-,"$\alpha$",angle radius=0.4cm,angle eccentricity=1.4] {angle=alpha--o--x};
\pic[draw,->,"$\beta$",angle radius=0.6cm,angle eccentricity=1.3] {angle=x--o--beta};
\draw[very thin,dashed] (alpha)--(o)--(beta);
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

您可以使用一些弧线来实现\filldraw。使用极坐标意味着(-70:1)起点位于 -70 度,距离原点 1。cycle路径末尾的 表示关闭绘制命令。

\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
  \draw (-3,0) -- (3,0);
  \draw (0,-3) -- (0,3);
  \filldraw[fill=gray!30,opacity=0.7] (-70:1) arc (-70:150:1) -- (150:2) arc (150:-70:2) -- cycle;
  \draw[->] (0:0.7) arc (0:-70:0.7)node[pos=0.5,anchor=-35]{$\alpha$};
  \draw[->] (0:0.8) arc (0:150:0.8)node[pos=0.9,anchor=150]{$\beta$};
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容