SHOW:
|
|
- or go back to the newest paste.
1 | sizes = {6, 3, 5.5, 3}; | |
2 | gear[n_] := ((n + Cos[# n]^2) {Cos[#], Sin[#]}) & | |
3 | h = 15; | |
4 | Manipulate[ | |
5 | Show[ParametricPlot[ | |
6 | { | |
7 | RotationMatrix[ | |
8 | sizes[[2]] \[Theta]/sizes[[1]]].(gear[sizes[[1]]][t]), | |
9 | RotationMatrix[-\[Theta] + Pi/(2 sizes[[2]])].(gear[sizes[[2]]][ | |
10 | t]) + {sizes[[1]] + sizes[[2]] + 1, 0}, | |
11 | RotationMatrix[ | |
12 | sizes[[4]] \[Theta]/sizes[[3]]].(gear[sizes[[3]]][t]) + {0, -h}, | |
13 | RotationMatrix[-\[Theta] + Pi/(2 sizes[[4]])].(gear[sizes[[4]]][ | |
14 | t]) + {sizes[[3]] + sizes[[4]] + 1, -h} | |
15 | } | |
16 | , {t, 0, 2 Pi}, PlotStyle -> Thick, | |
17 | PlotRange -> {{-8, 16}, {-h - 10, 12}}, Axes -> None, | |
18 | MeshStyle -> None, Frame -> None], | |
19 | Graphics[ | |
20 | { | |
21 | Darker@Blue, Disk[{0, 0}, 0.8], | |
22 | Darker@Purple, Disk[{sizes[[1]] + sizes[[2]] + 1, 0}, 0.8], | |
23 | Darker@Yellow, Disk[{0, -h}, 0.8], | |
24 | Darker@Green, Disk[{sizes[[3]] + sizes[[4]] + 1, -h}, 0.8], | |
25 | Red, PointSize[Large], | |
26 | Point[{sizes[[1]] + sizes[[2]] + 1, 0} + | |
27 | RotationMatrix[-\[Theta] + Pi/(2 sizes[[2]])].{sizes[[2]] + 1, | |
28 | 0}], Darker@Red, | |
29 | Table[ | |
30 | Block[{p}, | |
31 | p = | |
32 | sizes[[1]] RotationMatrix[ | |
33 | sizes[[2]] \[Theta]/sizes[[1]] - | |
34 | Pi (i + 0.5)/sizes[[1]]].{1, 0}; | |
35 | If[Mod[i, 2 sizes[[2]], 1] == 3, {Point[p]}, {}] | |
36 | ] | |
37 | , {i, 0, \[Theta] sizes[[2]]/Pi}], | |
38 | ||
39 | Red, PointSize[Large], | |
40 | Point[{sizes[[3]] + sizes[[4]] + 1, -h} + | |
41 | RotationMatrix[-\[Theta] + Pi/(2 sizes[[4]])].{sizes[[4]] + 1, | |
42 | 0}], Orange, | |
43 | Table[ | |
44 | Block[{p}, | |
45 | p = {0, -h} + | |
46 | sizes[[3]] RotationMatrix[ | |
47 | sizes[[4]] \[Theta]/sizes[[3]] - | |
48 | Pi (i + 0.5)/sizes[[3]]].{1, 0}; | |
49 | If[Mod[i, 2 sizes[[4]], 1] == 3, {Point[p]}, {}] | |
50 | ] | |
51 | , {i, 0, \[Theta] sizes[[4]]/Pi}] | |
52 | ||
53 | } | |
54 | ] | |
55 | ], | |
56 | ||
57 | {\[Theta], 0, 22 Pi} | |
58 | ] |