View difference between Paste ID: KwsV1Qvg and pC8Hn2DA
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
 ]