Generalized Rolling Polygon: Dynamic Rolling Along a Curve

Generalized Rolling Polygon: Dynamic Rolling Along a Curve
Loading the math board and drawing, please wait…
2015-08-08 02:42
① This example demonstrates a polygon (poly1) rolling along a given path composed of circles and curves, with real-time traces of vertices and edges, visualizing the dynamic process of rolling geometry. ② Core mathematical concepts include rotation, translation, and composite transformations of polygons, as well as parametric curves (CurveCartesian) describing the rolling path, involving geometric transformations and locus generation. ③ Construction highlights: Uses GeoGebra commands Circle, Intersect, Polygon, Rotate, CurveCartesian, and CircleArc to build the base shapes and rolling path; objects such as Sides, A, c, B, C define polygon vertices, Rotate applies rotation, and CurveCartesian generates the rolling trajectory; a slider Roll controls the rolling progress, dynamically updating the polygon's position and vertex traces (e.g., A1, B1–B6, C1–C6). ④ Suitable for high school and above, this is ideal for teaching geometric transformations, parametric equations, and dynamic loci, and serves as an interactive tool for exploring rolling polygon properties.

GeoGebra Commands & Parameters

  1. Circle(A, 1) → c
  2. Intersect(c, xAxis) → B, C
  3. Polygon(B, C, Sides) → poly1, a, k, D, E, F, G, H, I, J, K, b, d, e, f, g, h, i, j
  4. Rotate(D, (-2 * π / Sides), C) → A1
  5. CurveCartesian(x(C) + (b * cos((2 * π / Sides) - t)), (b * sin((2 * π / Sides) - t)), t, 0, (2 * π / Sides)) → l
  6. Rotate(poly1, (-2 * π / Sides), C) → poly1'
  7. Rotate(poly1, (-2 * π / Sides), C) → C1
  8. Rotate(C1, (-2 * π / Sides), B2) → C2
  9. Rotate(C2, (-2 * π / Sides), B3) → C3
  10. Rotate(C3, (-2 * π / Sides), B4) → C4
  11. Rotate(C4, (-2 * π / Sides), B5) → C5
  12. Rotate(C5, (-2 * π / Sides), B6) → C6
  13. Rotate(C6, (-2 * π / Sides), B7) → C7
  14. Rotate(C7, (-2 * π / Sides), B8) → C8
  15. Rotate(C8, (-2 * π / Sides), B9) → C9
  16. Rotate(C9, (-2 * π / Sides), B10) → C10
  17. Rotate(D1, (-2 * π / Sides), B3) → D2
  18. Rotate(D2, (-2 * π / Sides), B4) → D3
  19. Rotate(D3, (-2 * π / Sides), B5) → D4
  20. Rotate(D4, (-2 * π / Sides), B6) → D5
  21. Rotate(D5, (-2 * π / Sides), B7) → D6
  22. Rotate(D6, (-2 * π / Sides), B8) → D7
  23. Rotate(D7, (-2 * π / Sides), B9) → D8
  24. Rotate(D8, (-2 * π / Sides), B10) → D9
  25. CircleArc(B3, D2, B2) → p
  26. CircleArc(B4, D3, D2) → q
  27. CircleArc(B5, D4, D3) → r
  28. CircleArc(B6, D5, D4) → s
  29. CircleArc(B6, D5, D4) → E1
  30. CircleArc(B7, D6, D5) → E2
  31. CircleArc(B8, D7, D6) → E3
  32. CircleArc(B9, D8, D7) → E4
  33. CircleArc(B10, D9, D8) → E5
  34. Rotate(D9, (-2 * π / Sides), B11) → D10
  35. CircleArc(B11, D10, D9) → E6
  36. Rotate(D10, (-2 * π / Sides), B12) → D11
  37. CircleArc(B12, D11, D10) → E7
  38. Rotate(D11, (-2 * π / Sides), B13) → D12
  39. CircleArc(B13, D12, D11) → E8
  40. CircleArc(B1, B2, D) → t
  41. Rotate(C10, (-2 * π / Sides), B11) → C11
  42. Rotate(C11, (-2 * π / Sides), B12) → C12
  43. Rotate(C12, (-2 * π / Sides), B13) → C13
  44. Rotate(D12, (-2 * π / Sides), B14) → D13
  45. Rotate(C13, (-2 * π / Sides), B14) → C14
  46. Rotate(D13, (-2 * π / Sides), B15) → D14
  47. CircleArc(B14, D13, D12) → E9
  48. CircleArc(B15, D14, D13) → E10
  49. CircleArc(B16, D15, D14) → E11
  50. CircleArc(B17, D16, D15) → E12
  51. Rotate(poly1, If[Roll < (2 * π / Sides), (-Roll), (-2 * π / Sides)], B1) → poly1'_1
  52. Rotate(poly1'_1, If[Roll < (4 * π / Sides), (-(Roll - (2 * π / Sides))), (-2 * π / Sides)], B2) → poly2
  53. Rotate(poly2, If[Roll < (6 * π / Sides), (-(Roll - (4 * π / Sides))), (-2 * π / Sides)], B3) → poly2'
  54. Rotate(poly2', If[Roll < (8 * π / Sides), (-(Roll - (6 * π / Sides))), (-2 * π / Sides)], B4) → poly2''
  55. Rotate(poly2'', If[Roll < (10 * π / Sides), (-(Roll - (8 * π / Sides))), (-2 * π / Sides)], B5) → poly2'''
  56. Rotate(poly2''', If[Roll < (12 * π / Sides), (-(Roll - (10 * π / Sides))), (-2 * π / Sides)], B6) → poly3
  57. Rotate(poly3, If[Roll < (14 * π / Sides), (-(Roll - (12 * π / Sides))), (-2 * π / Sides)], B7) → poly3'
  58. Rotate(poly3', If[Roll < (16 * π / Sides), (-(Roll - (14 * π / Sides))), (-2 * π / Sides)], B8) → poly3''
  59. Rotate(poly3'', If[Roll < (18 * π / Sides), (-(Roll - (16 * π / Sides))), (-2 * π / Sides)], B9) → poly3'''
  60. Rotate(poly3''', If[Roll < (20 * π / Sides), (-(Roll - (18 * π / Sides))), (-2 * π / Sides)], B10) → poly4
  61. Rotate(poly4, If[Roll < (22 * π / Sides), (-(Roll - (20 * π / Sides))), (-2 * π / Sides)], B11) → poly4'
  62. Rotate(D, If[Roll < (2 * π / Sides), (-Roll), (-2 * π / Sides)], B1) → D'
  63. Rotate(D', If[Roll < (4 * π / Sides), (-(Roll - (2 * π / Sides))), (-2 * π / Sides)], B2) → D''
  64. Rotate(D'', If[Roll < (6 * π / Sides), (-(Roll - (4 * π / Sides))), (-2 * π / Sides)], B3) → D'''
  65. Rotate(D''', If[Roll < (8 * π / Sides), (-(Roll - (6 * π / Sides))), (-2 * π / Sides)], B4) → L
  66. Rotate(L, If[Roll < (10 * π / Sides), (-(Roll - (8 * π / Sides))), (-2 * π / Sides)], B5) → L'
  67. Rotate(L', If[Roll < (12 * π / Sides), (-(Roll - (10 * π / Sides))), (-2 * π / Sides)], B6) → L''
  68. Rotate(L'', If[Roll < (14 * π / Sides), (-(Roll - (12 * π / Sides))), (-2 * π / Sides)], B7) → L'''
  69. Rotate(L''', If[Roll < (16 * π / Sides), (-(Roll - (14 * π / Sides))), (-2 * π / Sides)], B8) → M
  70. Rotate(M, If[Roll < (18 * π / Sides), (-(Roll - (16 * π / Sides))), (-2 * π / Sides)], B9) → M'
  71. Rotate(M', If[Roll < (20 * π / Sides), (-(Roll - (18 * π / Sides))), (-2 * π / Sides)], B10) → M''
  72. Rotate(M'', If[Roll < (22 * π / Sides), (-(Roll - (20 * π / Sides))), (-2 * π / Sides)], B11) → M'''
  73. Circle((0, 1), 1) → c_1
  74. CurveCartesian(t - sin(t), 1 - cos(t), t, 0, 15.70796) → n

AI Drawing Prompt Reference

Draw a dynamic diagram of a regular polygon rolling along a path composed of circular arcs and curves. The path starts at the intersection of a circle and the horizontal axis. The polygon rotates step by step around this intersection by a fixed angle, moving along the path after each rotation, creating a sequence of positions. Vertices leave trace points during rolling, connected by arcs to show the smooth path. Include a slider to control rolling progress, and display vertex trajectories at different stages, illustrating rotation, translation, and composite transformations.
The prompt above was compiled from the original drawing commands and is for reference only.