What this example code from https://reference.wolfram.com/language/ref/Dynamic.html (under Applications section the first example) should teach us?
(* Constrain the coordinates of a point to lie on a circle: *)
DynamicModule[{p = {0, 1}},
Graphics[{Dashed, Circle[], PointSize[0.1],
Point[Dynamic[p, (p = Normalize[#]) &]]}, ImageSize -> Tiny,
PlotRange -> 1.2]]
I see nothing dynamic on the output. Even when I use p = {0, 1/2}
instead of p = {0, 1}
the point does not lie on the circle (no normalization of point p
occur).