Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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}]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement