e1 := {1, 0, 0};  e2 :=  {1, 0, 0};  e3 := {0, 0, 1}

polar[w_] := 
      Module[{e, en, c1, c2, c3, wn},  
e :=  
          First[Sort[{Cross[w, e1], Cross[w, e2], 
                Cross[w, 
                  e3]}, #1 . #1  >  #2 . #2 &]]; 
wn :=  
          w/Sqrt[Dot[w, w]]; 
en := 
          100*e/Sqrt[Dot[e, e]]; 
c1 := 
          Cross[wn, en]; 
c2 := 
          Cross[wn, c1]; 
c3 := 
          Cross[wn, c2]; 
Polygon[{en, c1, c2, 
            c3}]]

zlo := -5.0

pshow[list_] := 
      Show[Graphics3D[
          list], 
PlotRange -> {{-5, 5}, {-5, 
              5}, {zlo, 1}}, 
Axes -> {True, True, 
            False}, 
AxesLabel -> {x, y, 
            z}, 
FaceGrids -> {{{1, 0, 
                0}, {{-4, -3, -2, -1, 0, 1, 2, 3, 
                  4}, {0}}}, 
{{0, -1, 
                0}, {{-4, -3, -2, -1, 0, 1, 2, 3, 
                  4}, {0}}}}]

w := {3, 2, 1}

pshow[{Line[{{0, 0, 0}, w}],  polar[w]}]

showPLinePolar[
        w_] := 
Module[{wp}, 
pshow[{Line[{{0, 0, 0}, w}], 
polar[
              w], 
Line[{{0, 0, 1}, {0, 1, 
                  1}}], 
Line[{{0, 0, 1}, {1, 0, 
                  1}}], 
If[notTiny[w[[3]]], 
              Point[w/w[[3]]], {}]}]]

notTiny[x_] := Or[x >  .01, x < - .01]

Omega :=  0.05

zlo = 0.99

Do[showPLinePolar[{t Sin[2 Pi Omega t],  t Cos[2 Pi Omega t], 
          1}], 
{t,  -5,  5, 0.1}]

zlo = -1.0

Do[showPLinePolar[{t Sin[2 Pi Omega t],  t Cos[2 Pi Omega t], 
          1}], 
{t,  -5,  5, 0.1}]