Rigid Body Rotation Animation

Rigid Body Rotation Animation
Loading the math board and drawing, please wait…
2016-07-14 13:35
This GeoGebra example demonstrates the rotation of a rigid body around a fixed point, visualizing how multiple labeled points (A1-A19, B1-B16) move synchronously while maintaining their relative positions. The core mathematical concept is rigid body motion, specifically rotation transformations, involving rotation matrices, angular velocity, and the invariance of distances between points. The construction uses the Corner command to define reference points and the Sequence command to generate point arrays, with a time slider controlling the rotation angle for smooth animation. Suitable for high school or university courses in physics and mathematics to illustrate rigid body dynamics, rotational symmetry, or geometric transformations in computer graphics. It serves as an interactive tool for students to explore the mathematical representation of rotation.

GeoGebra Commands & Parameters

  1. Corner(1) → C01
  2. Corner(2) → C02
  3. Corner(3) → C03
  4. Corner(4) → C04
  5. Sequence(Sequence[Vector[(j, k), (j + (scale * f(j, k)), k + (scale * g(j, k)))], j, xmin, xmax, xstep], k, ymin, ymax, ystep) → field
  6. Sequence(Segment[Rotate[C1 - (0.6, 0), k + curlAngle, C1], Rotate[C1 + (0.6, 0), k + curlAngle, C1]], k, 0, 2.0944, 1.0472) → E1
  7. Sequence(Segment[Rotate[C2 - (0.600000000000002, 0), k + curlAngle, C2], Rotate[C2 + (0.600000000000002, 0), k + curlAngle, C2]], k, 0, 2.0944, 1.0472) → E2
  8. Sequence(Segment[Rotate[C3 - (0.600000000000002, 0), k + curlAngle, C3], Rotate[C3 + (0.600000000000002, 0), k + curlAngle, C3]], k, 0, 2.0944, 1.0472) → E3
  9. Sequence(Segment[Rotate[C4 - (0.600000000000002, 0), k + curlAngle, C4], Rotate[C4 + (0.600000000000002, 0), k + curlAngle, C4]], k, 0, 2.0944, 1.0472) → E4
  10. Sequence(Segment[Rotate[C5 - (0.600000000000002, 0), k + curlAngle, C5], Rotate[C5 + (0.600000000000002, 0), k + curlAngle, C5]], k, 0, 2.0944, 1.0472) → E5
  11. Sequence(Segment[Rotate[C6 - (0.600000000000002, 0), k + curlAngle, C6], Rotate[C6 + (0.600000000000002, 0), k + curlAngle, C6]], k, 0, 2.0944, 1.0472) → E6
  12. Sequence(Segment[Rotate[C7 - (0.600000000000002, 0), k + curlAngle, C7], Rotate[C7 + (0.600000000000002, 0), k + curlAngle, C7]], k, 0, 2.0944, 1.0472) → E7
  13. Sequence(Segment[Rotate[C8 - (0.600000000000002, 0), k + curlAngle, C8], Rotate[C8 + (0.600000000000002, 0), k + curlAngle, C8]], k, 0, 2.0944, 1.0472) → E8
  14. Sequence(Segment[Rotate[C9 - (0.600000000000002, 0), k + curlAngle, C9], Rotate[C9 + (0.600000000000002, 0), k + curlAngle, C9]], k, 0, 2.0944, 1.0472) → E9
  15. Sequence(Segment[Rotate[C10 - (0.600000000000002, 0), k + curlAngle, C10], Rotate[C10 + (0.600000000000002, 0), k + curlAngle, C10]], k, 0, 2.0944, 1.0472) → E10
  16. Sequence(Segment[Rotate[C11 - (0.600000000000002, 0), k + curlAngle, C11], Rotate[C11 + (0.600000000000002, 0), k + curlAngle, C11]], k, 0, 2.0944, 1.0472) → E11
  17. Sequence(Segment[Rotate[C12 - (0.600000000000002, 0), k + curlAngle, C12], Rotate[C12 + (0.600000000000002, 0), k + curlAngle, C12]], k, 0, 2.0944, 1.0472) → E12
  18. Sequence(Segment[Rotate[C13 - (0.600000000000002, 0), k + curlAngle, C13], Rotate[C13 + (0.600000000000002, 0), k + curlAngle, C13]], k, 0, 2.0944, 1.0472) → E13
  19. Sequence(Segment[Rotate[C14 - (0.600000000000002, 0), k + curlAngle, C14], Rotate[C14 + (0.600000000000002, 0), k + curlAngle, C14]], k, 0, 2.0944, 1.0472) → E14
  20. Sequence(Segment[Rotate[C15 - (0.600000000000002, 0), k + curlAngle, C15], Rotate[C15 + (0.600000000000002, 0), k + curlAngle, C15]], k, 0, 2.0944, 1.0472) → E15
  21. Sequence(Segment[Rotate[C16 - (0.600000000000002, 0), k + curlAngle, C16], Rotate[C16 + (0.600000000000002, 0), k + curlAngle, C16]], k, 0, 2.0944, 1.0472) → E16
  22. Sequence(Segment[Rotate[C17 - (0.600000000000002, 0), k + curlAngle, C17], Rotate[C17 + (0.600000000000002, 0), k + curlAngle, C17]], k, 0, 2.0944, 1.0472) → E17
  23. Sequence(Segment[Rotate[C18 - (0.600000000000002, 0), k + curlAngle, C18], Rotate[C18 + (0.600000000000002, 0), k + curlAngle, C18]], k, 0, 2.0944, 1.0472) → E18
  24. Sequence(Segment[Rotate[C19 - (0.600000000000002, 0), k + curlAngle, C19], Rotate[C19 + (0.600000000000002, 0), k + curlAngle, C19]], k, 0, 2.0944, 1.0472) → E19
  25. Sequence(Segment[Rotate[C20 - (0.600000000000002, 0), k + curlAngle, C20], Rotate[C20 + (0.600000000000002, 0), k + curlAngle, C20]], k, 0, 2.0944, 1.0472) → E20