Correct way of drawing empty, half-filled and fully filled circles?
\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}
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}
Run with xelatex
or lualatex
\documentclass[12pt]{article}
\usepackage{array}
\usepackage{unicode-math}
\setmathfont{XITS Math}
\begin{document}
\begin{tabular}{|>{$}c<{$}>{\Huge$}c<{$}|}\hline
\lgwhtcircle &\lgwhtcircle\\ \hline
\circlelefthalfblack &\circlelefthalfblack\\ \hline
\circlerighthalfblack &\circlerighthalfblack\\ \hline
\circlebottomhalfblack &\circlebottomhalfblack\\ \hline
\circletophalfblack &\circletophalfblack\\ \hline
\mdlgblkcircle &\mdlgblkcircle\\ \hline
\end{tabular}
\end{document}
if you want circular nodes
and not just circles, you could use following styles:
\documentclass[tikz, border=2mm]{standalone}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[
fullcircle/.style={circle, draw=#1, fill=#1},
fullcircle/.default=black,
halfcircle/.style={circle, draw=#1,
path picture={\fill[#1] (path picture bounding box.north west) rectangle (path picture bounding box.south);}},
halfcircle/.default=black,
emptycircle/.style={circle, draw=#1, fill=none},
emptycircle/.default=black,
node distance=5mm
]
\node[fullcircle] (a) {}; \node[fullcircle=red, minimum size=5ex, right=of a] (b) {};
\node[halfcircle, below=of a] (a) {}; \node[halfcircle=red, minimum size=5ex, right=of a] (b) {};
\node[emptycircle, below=of a] (a) {}; \node[emptycircle=red, minimum size=5ex, right=of a] (b) {};
\end{tikzpicture}
\end{document}