彩虹摆波模拟

彩虹摆波模拟
几何画板及绘图内容加载中,请稍等……
2021-09-24 19:13
所属专题 Pendulum simulations
该范例演示了多个摆锤在重力作用下形成的波浪状运动,通过不同摆长产生相位差,形成周期性变化的彩虹色波带。核心数学概念包括简谐运动、周期与摆长的平方根关系、相位差以及波的叠加。作图要点:使用GeoGebra的Rotate、Sphere、Zip、Sequence、Length、Translate、Segment等命令,构建多个摆锤对象(L1至L16),每个摆锤通过角度变量(angle1至angle16)控制旋转,并利用按钮(button1)和滑块(slider)驱动动画,实现摆动的动态模拟。适合中学物理或数学课程中讲解简谐运动、波动现象以及参数化动画设计,也可用于大学物理演示。通过调整摆长和初始角度,学生可以直观观察波的形成与传播。

GeoGebra 命令及参数

  1. Rotate(Segment[O, (posx, posy)], π / 2, xAxis) → s
  2. Rotate((posx, posy), π / 2, xAxis) → P
  3. Sphere(P, 1) → sph
  4. Zip("angle" + (Text[k]), k, Ln) → LnamAng
  5. Zip("angleV" + (Text[k]), k, Ln) → LnamAngV
  6. Zip("angleA" + (Text[k]), k, Ln) → LnamAngA
  7. Sequence(k, k, 0, 0.15, 0.01) → Ldiff, {0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.060000000000000005, 0.07, 0.08, 0.09, 0.09999999999999999, 0.10999999999999999, 0.11999999999999998, 0.12999999999999998, 0.13999999999999999, 0.15}
  8. Length(Ldiff) → size
  9. Translate(Rotate[((L1 * sin(angle1)), ((-L1) * cos(angle1))), π / 2, xAxis], Vector[(0, 1, 0)]) → P1
  10. Zip(Vector[(0, 0, 0), (0, k, 0)], k, Ln) → Lv
  11. Zip(Translate[O, Vector[v]], Vector[v], Lv) → TO
  12. Segment((0, 1, 0), P1) → segment1
  13. Translate(Rotate[((L2 * sin(angle2)), ((-L2) * cos(angle2))), π / 2, xAxis], Vector[(0, 2, 0)]) → P2
  14. Segment((0, 2, 0), P2) → segment2
  15. Translate(Rotate[((L3 * sin(angle3)), ((-L3) * cos(angle3))), π / 2, xAxis], Vector[(0, 3, 0)]) → P3
  16. Segment((0, 3, 0), P3) → segment3
  17. Translate(Rotate[((L4 * sin(angle4)), ((-L4) * cos(angle4))), π / 2, xAxis], Vector[(0, 4, 0)]) → P4
  18. Segment((0, 4, 0), P4) → segment4
  19. Translate(Rotate[((L5 * sin(angle5)), ((-L5) * cos(angle5))), π / 2, xAxis], Vector[(0, 5, 0)]) → P5
  20. Segment((0, 5, 0), P5) → segment5
  21. Translate(Rotate[((L6 * sin(angle6)), ((-L6) * cos(angle6))), π / 2, xAxis], Vector[(0, 6, 0)]) → P6
  22. Segment((0, 6, 0), P6) → segment6
  23. Translate(Rotate[((L7 * sin(angle7)), ((-L7) * cos(angle7))), π / 2, xAxis], Vector[(0, 7, 0)]) → P7
  24. Segment((0, 7, 0), P7) → segment7
  25. Translate(Rotate[((L8 * sin(angle8)), ((-L8) * cos(angle8))), π / 2, xAxis], Vector[(0, 8, 0)]) → P8
  26. Segment((0, 8, 0), P8) → segment8
  27. Translate(Rotate[((L9 * sin(angle9)), ((-L9) * cos(angle9))), π / 2, xAxis], Vector[(0, 9, 0)]) → P9
  28. Segment((0, 9, 0), P9) → segment9
  29. Translate(Rotate[((L10 * sin(angle10)), ((-L10) * cos(angle10))), π / 2, xAxis], Vector[(0, 10, 0)]) → P10
  30. Segment((0, 10, 0), P10) → segment10
  31. Translate(Rotate[((L11 * sin(angle11)), ((-L11) * cos(angle11))), π / 2, xAxis], Vector[(0, 11, 0)]) → P11
  32. Segment((0, 11, 0), P11) → segment11
  33. Translate(Rotate[((L12 * sin(angle12)), ((-L12) * cos(angle12))), π / 2, xAxis], Vector[(0, 12, 0)]) → P12
  34. Segment((0, 12, 0), P12) → segment12
  35. Translate(Rotate[((L13 * sin(angle13)), ((-L13) * cos(angle13))), π / 2, xAxis], Vector[(0, 13, 0)]) → P13
  36. Segment((0, 13, 0), P13) → segment13
  37. Translate(Rotate[((L14 * sin(angle14)), ((-L14) * cos(angle14))), π / 2, xAxis], Vector[(0, 14, 0)]) → P14
  38. Segment((0, 14, 0), P14) → segment14
  39. Translate(Rotate[((L15 * sin(angle15)), ((-L15) * cos(angle15))), π / 2, xAxis], Vector[(0, 15, 0)]) → P15
  40. Segment((0, 15, 0), P15) → segment15
  41. Translate(Rotate[((L16 * sin(angle16)), ((-L16) * cos(angle16))), π / 2, xAxis], Vector[(0, 16, 0)]) → P16
  42. Segment((0, 16, 0), P16) → segment16
  43. Zip((9.81 * (120 / (((2 * π) * (13.44 + k + 1))))^(2)), k, Ln) → Llength
  44. Sphere(P1, 0.5) → S1
  45. Sphere(P2, 0.5) → S2
  46. Sphere(P3, 0.5) → S3
  47. Sphere(P4, 0.5) → S4
  48. Sphere(P5, 0.5) → S5
  49. Sphere(P6, 0.5) → S6
  50. Sphere(P7, 0.5) → S7
  51. Sphere(P8, 0.5) → S8
  52. Sphere(P9, 0.5) → S9
  53. Sphere(P10, 0.5) → S10
  54. Sphere(P11, 0.5) → S11
  55. Sphere(P12, 0.5) → S12
  56. Sphere(P13, 0.5) → S13
  57. Sphere(P14, 0.5) → S14
  58. Sphere(P15, 0.5) → S15
  59. Sphere(P16, 0.5) → S16
  60. Segment(Q0, Q1) → top
  61. Segment(Q0', Q0'') → top'
  62. Segment(Q1', Q1'') → top''
  63. Segment(Q1', Q3) → leg1
  64. Segment(Q1'', Q4) → leg2
  65. Segment(Q0', Q5) → leg3
  66. Segment(Q0'', Q6) → leg4

AI 绘图提示语参考

画一个由16个不同长度的摆组成的彩虹波形,每个摆的摆长由其位置决定,初始角度分别为angle1到angle16。摆的运动通过旋转和平移实现,摆的末端用球体表示,球体半径为0.5。摆的长度由公式9.81 * (120 / (2π * (13.44 + k + 1)))^2计算,其中k从0到0.15,步长为0.01。摆的运动通过角度angle1到angle16控制。
以上提示语为根据原始绘图命令整理而来,仅供参考。