TiKZ is a LaTeX package that allows you to code graphics. For example, your first example in TiKZ could look like this:
\documentclass[tikz]{standalone}
\usepackage{units}
\begin{document}
\begin{tikzpicture}
\draw[->] (0,0) -- (3,0) node[midway,below] {\unit[3]{m} east};
\draw[->] (3,0) -- (3,4) node[midway,right] {\unit[4]{m} north};
\draw[->] (0,0) -- (3,4) node[midway,above left] {\(R=\unit[5]{m}\), 53°};
\node at (0.7,0.3) {53°};
\end{tikzpicture}
\end{document}
With the outcome being:

(Admittedly, the arrows need tweaking, but that’s something you always have when two arrows point to the same point from similar directions.)
I regularly need to make similar illustrations for exercises and use TiKZ for most of those.
The advantages and disadvantages are:
- TiKZ is not WYGIWYW (what you get is what you want) instead of WYSIWYG (what you see is what you get). I consider that an upside.
- TiKZ has a very convex learning curve. It can do everything, but it takes you a while to get there. Once you have achieved a certain level of mastery, you can get clean results extremely fast. It’s not for doing something quick and dirty though.
- Tasks that are complex at first glance can have very simple solutions, in particular when it comes to creating diagrams such as yours.
- You have all the powers of LaTeX to render anything resembling a formula. And if you want to change a symbol, it can be as easy as changing one macro.
- Text in your figures will exactly look like your regular text, being rendered by the same engine. If you want to change your typeface or similar, you need to change one line only. (Maybe some text placements need a bit of tweaking though.)