刚体旋转动画演示

刚体旋转动画演示
几何画板及绘图内容加载中,请稍等……
2016-07-14 13:35
该范例通过GeoGebra动态展示刚体绕固定点旋转的视觉效果,利用多个标记点(A1-A19、B1-B16)的同步运动来模拟刚体整体转动。核心数学概念是刚体运动中的旋转变换,涉及旋转矩阵、角速度与位置向量的关系,以及刚体上各点相对位置不变的性质。作图要点:使用Corner命令定义旋转中心或参考角点,通过Sequence命令生成一系列点序列,并利用滑块(time)控制旋转角度,实现连续动画。适合高中或大学物理、数学课程中讲解刚体运动、旋转对称性或计算机动画中的几何变换,也可用于数学实验课让学生直观理解旋转的数学表达。

GeoGebra 命令及参数

  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