[Tex/LaTex] Correct way of drawing empty, half-filled and fully filled circles

tikz-pgf

I am trying to draw simple empty, half-filled and fully filled circles using tikz. Here is what my code:

\documentclass[12pt]{article}

\usepackage{tikz}
\newcommand*\emptycirc{\tikz\draw (0,0) circle (1.0ex);} 
\newcommand*\halfcirc{\tikz\draw[fill] (0,0)-- (90:1ex) arc (90:270:1ex) -- cycle ;}
\newcommand*\fullcirc{\tikz\fill (0,0) circle (1.0ex);} 

\begin{document}

\begin{tabular}{|c|}
            \hline
            \emptycirc\\ \hline
            \halfcirc \\ \hline
            \fullcirc \\ \hline
        \end{tabular}

\end{document}

I want to achieve following two aspects in terms of half circle. I want

  • the halfcirc to show rest of the circle
  • I want to control radius of the half-circle, similar to circle (1.0ex).

Many trials, nothing worked.

Best Answer

\documentclass[12pt]{article}

\usepackage{tikz}
\newcommand*\emptycirc[1][1ex]{\tikz\draw (0,0) circle (#1);} 
\newcommand*\halfcirc[1][1ex]{%
  \begin{tikzpicture}
  \draw[fill] (0,0)-- (90:#1) arc (90:270:#1) -- cycle ;
  \draw (0,0) circle (#1);
  \end{tikzpicture}}
\newcommand*\fullcirc[1][1ex]{\tikz\fill (0,0) circle (#1);} 

\begin{document}

\begin{tabular}{|c|}
            \hline
            \emptycirc \emptycirc[2ex]\\ \hline
            \halfcirc \halfcirc[2ex]\\ \hline
            \fullcirc \fullcirc[2ex]\\ \hline
        \end{tabular}

\end{document}

enter image description here

If a thicker border is desired,

\documentclass[12pt]{article}

\usepackage{tikz}
\newcommand*\emptycirc[1][1ex]{\tikz\draw[thick] (0,0) circle (#1);} 
\newcommand*\halfcirc[1][1ex]{%
  \begin{tikzpicture}
  \draw[fill] (0,0)-- (90:#1) arc (90:270:#1) -- cycle ;
  \draw[thick] (0,0) circle (#1);
  \end{tikzpicture}}
\newcommand*\fullcirc[1][1ex]{\tikz\fill (0,0) circle (#1);} 

\begin{document}

\begin{tabular}{|c|}
            \hline
            \emptycirc \emptycirc[2ex]\\ \hline
            \halfcirc \halfcirc[2ex]\\ \hline
            \fullcirc \fullcirc[2ex]\\ \hline
        \end{tabular}

\end{document}

enter image description here