Plot a Complex Polar Number as Magnitude Arrow and Phase Dot on a Circle

Given a complex number, z = r*exp(i*psi), how can I use Mathematica to plot the magnitude and phase on a circle? I've put together an example using the following code :

Graphics[{Circle[], Blue, Arrow[{{0, 0}, {1/2, Sqrt/2}}], Red,
Point[{1/2, Sqrt/2}]}, Axes -> True]

However, with Mathematica's new complex plotting options, I feel like there is a better way to do it but I haven't been able to figure it out. ComplexListPlot has nice PolarAxes options, but I am unsure if I can use that with an arrow whose length I set. Thanks!

r = 3;
ψ = Pi/4;
ComplexListPlot[{r Exp[I ψ]},
PlotStyle -> Directive[PointSize[Large], Red],
PlotRange -> {{-4, 4}, {-4, 4}},
PolarGridLines -> {{{ψ, Directive[Opacity, Blue, Thick, Arrowheads[Large]]}},
{{r, Gray}}}] /. Line -> Arrow For multiple points and arrows:

r = 3;
angles = {Pi/4, 2 Pi/3};
colors = {Red, Magenta};
arrowcolors = {Blue, Green};

ComplexListPlot[{r Exp[I #]} & /@ angles,
BaseStyle -> AbsolutePointSize,
PlotRange -> 1.2 r {{-1, 1}, {-1, 1}},
Method -> {"GridLinesInFront" -> True},
PlotStyle -> colors,
PolarGridLines -> {MapThread[{#, Directive[Opacity, #2, Thick,
Arrowheads[Large]]} &, {angles, arrowcolors}], {{r, Gray}}}] /.
Line -> (Arrow[#, {0, .15 r}] &) PolarPlot is what You are looking for.

From the examples this one might be cool:

PolarPlot[Floor[\[Theta]], {\[Theta], 0, 2 Pi},
ExclusionsStyle -> {Dashed, PointSize[Medium]}] ListPolarPlot offers the example for the polar grid:

ListPolarPlot[Sin[Range[0, 4 Pi, 0.1]], Joined -> True,
PlotTheme -> {"Scientific", "Grid"}, ColorFunction -> "DarkRainbow

"] For the arrow, there is no new built-in available. The enhancement is

AnnotatedArrow[p_, q_,
label_] := {Arrowheads[{{-.1, 0}, {.1, .5,
Graphics[Inset[Style[label, Medium], {Center, Top}]]}, {.1, 1}}],
Arrow[{p, q}]}
Graphics[{AnnotatedArrow[{-1, 0}, {1, 0}, "diameter = 2"], Circle[]}] Look up the documentation for Arrow for further inspiration: Arrow

PlanarAngle provides some convention for the usage. That is new in 12. AnglePath add vector addition conventions. AngleVector represents the mathematical object central in Your question. It can be input to ListPolarPot

Show or Overlay.

A solution in ComplexListPlot is

Show[ComplexListPlot[{0, (1 + I)/Sqrt@2}, PlotStyle -> Thick,
Joined -> True, PolarAxes -> Automatic,
PolarTicks -> {"Degrees", 0.1}, PolarGridLines -> Automatic],
Graphics[Circle[]], PlotRange -> {{-1.1, 1.1}, {-1.1, 1.1}},
AxesOrigin -> {0, 0}] You can also use Locator to interactively set the angle and the radius:

Deploy @ DynamicModule[{pt = {3, 3}}, Panel @
Graphics[{Dynamic @ Circle[{0, 0}, Norm[pt]], Point[{0, 0}], 