A useful TikZ macro \angleMark{A}{B}{C}
for marking angles in a polygon. Supply three points (of type TikZ coordinate or node). The angle marking is drawn on the inside, and the actual angle (in degrees) is left in \pgfmathresult
.
Note the style setting for the mark: angleMark/.style={fill=blue!20!white,draw=blue}
. The size (diameter) of the mark can be supplied as an optional first argument, e.g. \angleMark[1cm]{A}{B}{C}
.
\documentclass[a4paper,11pt]{scrartcl} \usepackage[utf8]{inputenc} \usepackage{tikz} \usetikzlibrary{calc} \makeatletter \newcommand{\angleMark}[4][.5cm]{% \pgfmathanglebetweenpoints{\pgfpointanchor{#3}{center}} {\pgfpointanchor{#2}{center}} \let\my@angleA\pgfmathresult \pgfmathanglebetweenpoints{\pgfpointanchor{#3}{center}} {\pgfpointanchor{#4}{center}} \let\my@angleB\pgfmathresult \pgfmathparse{int(abs(\my@angleA-\my@angleB))} \ifnum\pgfmathresult>180 % \node at ($(#2) + (-2,-2)$) {$\my@angleA , \my@angleB$}; \pgfmathparse{int(\my@angleA-180)} \ifnum\pgfmathresult>0 \pgfmathsetmacro\my@angleA{\my@angleA-360} \else \pgfmathsetmacro\my@angleB{\my@angleB-360} \fi \fi \filldraw[angleMark] (#3) -- ($(#3)!#1!(#2)$) arc (\my@angleA:\my@angleB:#1) -- cycle; % put the angle in \pgfmathresult \pgfmathparse{abs(\my@angleA-\my@angleB)} } \makeatother \begin{document} \begin{tikzpicture} [angleMark/.style={fill=blue!20!white,draw=blue}] \coordinate [label=left:$A$](A) at (0,0); \coordinate [label=right:$B$](B) at (5,0); \coordinate [label=left:$C$](C) at (110:4); \coordinate [label=$D$] (D) at ($(C) + (12:6)$); \draw (B) -- (A) -- (C) -- (D) -- (B) -- (C); \angleMark{B}{A}{C} % use \pgfmathresult for the label \node at ($(A) + (\pgfmathresult/2:1)$) {$\pgfmathprintnumber[precision=0]\pgfmathresult^\circ$}; \angleMark{C}{D}{B} \node at ($(D) + (\pgfmathresult/2-180:1)$) {$\pgfmathprintnumber[precision=0]\pgfmathresult^\circ$}; \angleMark{B}{C}{D} \node at ($(C) + (-10:1)$) {$\pgfmathprintnumber[precision=0]\pgfmathresult^\circ$}; \end{tikzpicture} \end{document}