I have found a solution which uses tkz-euclide and used Herbert's answer to
Defining a macro in LaTeX with an optional parameter in round brackets
to define the optional argument of the macro.
Code
\documentclass{article}
\usepackage{tkz-euclide}
\usetkzobj{all}
%see: http://tex.stackexchange.com/a/12893/4011
\makeatletter
\def\rechterWinkel{\@ifnextchar[\rechterWinkel@i\rechterWinkel@ii}
\def\rechterWinkel@i[#1](#2,#3,#4){%
\pgfmathsetmacro{\pos@A}{0.5*#1}
\pgfmathsetmacro{\pos@B}{0.25*#1}
\tkzMarkAngle[size=\pos@A](#2,#3,#4)
\tkzLabelAngle[pos=\pos@B](#2,#3,#4){\tikz \fill (0,0) circle (0.6pt);}
}%
\def\rechterWinkel@ii(#1,#2,#3){%
\rechterWinkel@i[1](#1,#2,#3)
}%
\makeatother
\begin{document}
\begin{tikzpicture}
\coordinate (O) at (0,0); %
\coordinate (A) at (1,1); %
\coordinate (B) at (1,-1); %
\coordinate (C) at (-1,1);
\draw (O) -- (A); %
\draw (O) -- (B); %
\draw (O) -- (C); %
\rechterWinkel(B,O,A)
\rechterWinkel[0.5](A,O,C)
\end{tikzpicture}
\end{document}
Output
