飞机与风向量合成交互模拟

飞机与风向量合成交互模拟
几何画板及绘图内容加载中,请稍等……
2012-09-18 01:13
①本范例动态演示了在二维平面中,喷气飞机的飞行速度向量与环境风向量进行向量加法合成后的合运动轨迹与位置变化。②涉及的核心数学概念包括向量(Vector)、向量加法的平行四边形法则、速度与方向的分解合成,以及参数化坐标几何。③作图要点上,利用 GeoGebra 的 `Vector` 命令构建了飞机速度向量 `vector_j` 和风向量 `vector_w`,通过 `Translate` 命令模拟随时间 `time` 推进的合位移,并结合 `Polygon`、`Segment` 和 `Circle` 命令绘制了飞机多边形 `poly1`、方向指示线及辅助圆。用户可通过滑块自由调节飞机与风的 speed(速度)和 direction(方向)。④该范例适合高中及大学阶段的物理运动学、解析几何与线性代数课程,用于向量合成的直观教学与动态探究。

GeoGebra 命令及参数

  1. Vector((0, 0), StartPoint) → vector_s
  2. Vector((0, 0), (0 + speed_w * cos(direction_w / 180 * 3.14), 0 + speed_w * sin(direction_w / 180 * 3.14))) → vector_w
  3. Vector((0, 0), (0 + speed_j * cos(direction_j / 180 * 3.14), 0 + speed_j * sin(direction_j / 180 * 3.14))) → vector_j
  4. Translate((-383.74751, 427.82819), Vector[vector_w * time]) → B_9
  5. Translate((-101.94722, 122.76974), Vector[vector_w * time]) → B_1
  6. Translate((373.59867, -717.66124), Vector[vector_w * time]) → B_2
  7. Translate((291.78433, -304.20541), Vector[vector_w * time]) → B_3
  8. Translate((-478.63411, 139.75126), Vector[vector_w * time]) → B_4
  9. Translate((158.83601, 627.76471), Vector[vector_w * time]) → B_5
  10. Translate((-605.40599, -232.82316), Vector[vector_w * time]) → B_6
  11. Translate((670.17568, 302.42241), Vector[vector_w * time]) → B_7
  12. Translate((218.49231, 305.81139), Vector[vector_w * time]) → B_8
  13. Circle(B_1, 100) → c_1
  14. Circle(B_2, 50) → c_2
  15. Circle(B_3, 80) → c_3
  16. Circle(B_4, 50) → c_4
  17. Circle(B_8, 75) → c_8
  18. Circle(B_7, 100) → c_7
  19. Circle(B_5, 20) → c
  20. Circle(B_6, 40) → c_6
  21. Polygon(A, B, C, D) → poly1, a_1, b, c_5, d
  22. Polygon(E, F, G, H) → poly2, e, f, g, h
  23. Circle(B_9, 30) → c_9
  24. Vector((1500, 600), (1500 + speed_w * cos(direction_w / 180 * 3.14), 600 + speed_w * sin(direction_w / 180 * 3.14))) → vector_1
  25. Translate((-1000, 250), Vector[vector_1 * time]) → B_{10}
  26. Circle(B_{10}, 80) → c_10
  27. Translate((0, 0), Vector[time * vector_j + time * vector_w + vector_s]) → plane_w
  28. Translate(Rotate[pic1, direction_j / 180 * 3.14, (0, 0)], Vector[vector_s + (vector_j + vector_w) * time]) → pic1'
  29. Translate((0, 0), Vector[time * vector_j + vector_s]) → planexxnoxxwind
  30. Segment(StartPoint, plane_w) → i
  31. Vector((0, 0), (0 + speed_w * cos(direction_w / 180 * 3.14), 0 + speed_w * sin(direction_w / 180 * 3.14))) → vector_2
  32. Vector((0, 0), (0 + speed_w * cos(direction_w / 180 * 3.14), 0 + speed_w * sin(direction_w / 180 * 3.14))) → vector_3
  33. Vector((0, 0), (0 + speed_w * cos(direction_w / 180 * 3.14), 0 + speed_w * sin(direction_w / 180 * 3.14))) → vector_4
  34. Translate((-1400.59867, 607.66124), Vector[vector_2 * time]) → B_{11}
  35. Translate((1300.59867, 617.66124), Vector[vector_4 * time]) → B_{13}
  36. Translate((1103.59867, -517.66124), Vector[vector_3 * time]) → B_{12}
  37. Circle(B_{13}, 90) → c_13
  38. Circle(B_{12}, 50) → c_12
  39. Circle(B_{11}, 75) → c_11
  40. Vector((0, 0), (0 + speed_w * cos(direction_w / 180 * 3.14), 0 + speed_w * sin(direction_w / 180 * 3.14))) → vector_5
  41. Vector((0, 0), (0 + speed_w * cos(direction_w / 180 * 3.14), 0 + speed_w * sin(direction_w / 180 * 3.14))) → vector_6
  42. Translate((-1473.59867, -717.66124), Vector[vector_5 * time]) → B_{14}
  43. Translate((800.59867, -100.66124), Vector[vector_6 * time]) → B_{15}
  44. Circle(B_{15}, 50) → c_15
  45. Circle(B_{14}, 70) → c_14
  46. Polygon(J, L, R, S) → poly3, j_1, l, r, s