Filling an annulus sector with tikz

You must load tikz package if you want to use TikZ :)) So I assume that you don't allow to load any additional packages.

In the following proposals, it seems that I don't use any packages. However, I do load one. \documentclass[tikz]{standalone} already load tikz.


The angles are drawn with quotes and angles libraries. They are not packages, so I hope this answer is valid.

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

enter image description here


However, if you don't want to load a single library, you can play with arc and node[midway], although this is a bit more difficult

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

enter image description here


Recommended approach:

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

enter image description here


You can do it with \filldraw with some arcs. The use of polar coordinatesd like (-70:1) means starting poiunt is at -70 degrees and distance 1 from origin. The cycleat the end of the path closes the draw command.

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

enter image description here

Tags:

Tikz Pgf