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 | ] |