p = RandomReal[{0.2, 0.9}] (({Sin[#], Cos[#]} &)[RandomReal[]]); R = RotationMatrix[Pi/2]; n = 33; p2s = Table[{Sin[\[Theta]], Cos[\[Theta]]}, {\[Theta], 0, 2 Pi, 2 Pi/n}]; ns = Table[R.(p1 - p)/Norm[p1 - p], {p1, p2s}]; frame[i_] := Block[{p1, n1, m, n2}, n1 = ns[[Mod[i, n, 1]]]; p1 = p2s[[Mod[i, n, 1]]]; n2 = (p - p1)/Norm[p - p1]; n1 = n1/Norm[n1]; m = (p1 + p)/2; Graphics[ { { Thick, RGBColor[0.1, 0.1, 0.3], Circle[{0, 0}, 1] }, If[i > n, If[i > 2 n, Table[ Block[{pt, nt}, pt = p2s[[j]]; nt = ns[[j]]; { Line[{(pt + p)/2 + 10 nt, (pt + p)/2 - 10 nt}] } ] , {j, i - 2 n, n}] , Table[ Block[{pt, nt}, pt = p2s[[j]]; nt = ns[[j]]; { Line[{(pt + p)/2 + 10 nt, (pt + p)/2 - 10 nt}] } ] , {j, i - n}] ] , {} ], Thick, PointSize[Large], Point[p1], Point[p], RGBColor[0.3, 0.1, 0.1], Line[{p1, p}], RGBColor[0.5, 0.1, 0.07], Line[{m + 10 n1, m - 10 n1}], FaceForm[], EdgeForm[Black], Polygon[{ m + 0.1 n2 + 0.1 n1, m - 0.1 n2 + 0.1 n1, m - 0.1 n2 - 0.1 n1, m + 0.1 n2 - 0.1 n1 }] } , ImageSize -> 300, PlotRange -> 1.5] ]; Manipulate[ frame[i] , {i, 1, 3 n, 1}]