完美法式台球:向量的魔法

完美法式台球:向量的魔法
几何画板及绘图内容加载中,请稍等……
2018-12-25 12:45
本范例通过动态几何演示了法式台球(无袋台球)中球的完美反弹路径,直观展示了向量在反射与平移中的核心作用。核心数学概念包括向量运算、反射定律、平移变换以及多边形面积与路径的优化问题。作图要点:使用GeoGebra的Segment、Line、OrthogonalLine、Intersect等命令构造台球桌边界与反弹点,通过Vector、Translate实现球的平移与反射,利用If、Circle、Polygon、Ray等对象构建动态轨迹与辅助图形,并借助滑块控制入射角度与位置。适合高中及以上学段学习向量、几何变换与最优化问题,也可用于物理中碰撞反射的直观教学。

GeoGebra 命令及参数

  1. Segment(A, B) → f
  2. Line(C, f) → g1
  3. OrthogonalLine(A, g1) → i1
  4. Line(D, g1) → h1
  5. Intersect(h1, i1) → ABCD1
  6. Vector(D, ABCD1) → abcd1
  7. OrthogonalLine(B, h1) → j1
  8. Intersect(g1, j1) → ABCD2
  9. Translate(ABCD2, Vector[(-abcd1)]) → ABCD2'
  10. Segment(F, B) → h
  11. Line(E, h) → i3
  12. Line(C, i3) → j3
  13. OrthogonalLine(F, j3) → n3
  14. Intersect(i3, n3) → BCEF1
  15. Vector(E, BCEF1) → bcef1
  16. OrthogonalLine(B, i3) → m3
  17. Intersect(j3, m3) → BCEF2
  18. Translate(BCEF2, Vector[(-bcef1)]) → BCEF2'
  19. If(f < (2 * r), ABCD2', If[h < (2 * r), BCEF2', C]) → C1
  20. Vector(C, BCEF2) → bcef2
  21. Translate(BCEF1, Vector[(-bcef2)]) → BCEF1'
  22. Segment(A, F) → g
  23. Line(E, g) → h2
  24. Line(D, h2) → i2
  25. OrthogonalLine(A, i2) → m2
  26. Intersect(i2, m2) → ADEF2
  27. Vector(D, ADEF2) → adef2
  28. OrthogonalLine(F, h2) → j2
  29. Intersect(h2, j2) → ADEF1
  30. Translate(ADEF1, Vector[(-adef2)]) → ADEF1'
  31. Vector(E, ADEF1) → adef1
  32. Translate(ADEF2, Vector[(-adef1)]) → ADEF2'
  33. Vector(C, ABCD2) → abcd2
  34. Translate(ABCD1, Vector[(-abcd2)]) → ABCD1'
  35. If(f < (2 * r), ABCD1', If[g < (2 * r), ADEF2', D]) → D1
  36. Translate(C1, cb) → C2
  37. Translate(D1, da) → D2
  38. Translate(B, cb) → B2
  39. Translate(A, da) → A2
  40. If(x(B2) < 0, (-x(B2)), If[x(B2) > Lx, (2 * Lx) - x(B2), x(B2)]) → xB
  41. If(x(B2) < 0, (-x(C2)), If[x(B2) > Lx, (2 * Lx) - x(C2), x(C2)]) → xC
  42. If(x(A2) < 0, (-x(D2)), If[x(A2) > Lx, (2 * Lx) - x(D2), x(D2)]) → xD
  43. If(y(B2) < 0, (-y(C2)), If[y(B2) > Ly, (2 * Ly) - y(C2), y(C2)]) → yC
  44. If(y(A2) < 0, (-y(D2)), If[y(A2) > Ly, (2 * Ly) - y(D2), y(D2)]) → yD
  45. Circle(A3, r) → c
  46. Circle(B3, r) → d
  47. Segment(D3, A3) → k
  48. If(g ≤ (2 * r), ADEF1', If[h < (2 * r), BCEF1', E]) → E1
  49. Segment(C3, B3) → l
  50. Translate(F, ef) → F2
  51. Translate(E1, ef) → E2
  52. If(x(F2) < 0, (-x(E2)), If[x(F2) > Lx, (2 * Lx) - x(E2), x(E2)]) → xE
  53. If(y(F2) < 0, (-y(E2)), If[y(F2) > Ly, (2 * Ly) - y(E2), y(E2)]) → yE
  54. Circle(F3, r) → e
  55. Segment(E3, F3) → i
  56. Intersect(m, n) → G
  57. Intersect(j, m) → H
  58. Intersect(j, p) → I
  59. Intersect(n, p) → J
  60. Polygon(G, H, I, J) → q1, p4, p3, p1, p2
  61. If(y(B2) < 0, (-y(B2)), If[y(B2) > Ly, (2 * Ly) - y(B2), y(B2)]) → yB
  62. If(y(A2) < 0, (-y(A2)), If[y(A2) > Ly, (2 * Ly) - y(A2), y(A2)]) → yA
  63. If(x(F2) < 0, (-x(F2)), If[x(F2) > Lx, (2 * Lx) - x(F2), x(F2)]) → xF
  64. If(x(A2) < 0, (-x(A2)), If[x(A2) > Lx, (2 * Lx) - x(A2), x(A2)]) → xA
  65. If(y(F2) < 0, (-y(F2)), If[y(F2) > Ly, (2 * Ly) - y(F2), y(F2)]) → yF
  66. Ray(D3, A3) → q