抛物面反射器动画演示

抛物面反射器动画演示
几何画板及绘图内容加载中,请稍等……
2019-08-21 18:15
①本范例通过动画演示抛物面反射器的特性,展示光线从不同角度射入抛物面后汇聚于焦点;②涉及的核心数学概念包括抛物线、焦点、反射定律、解析几何;③作图要点——从下方『构造摘要』提炼用到了 Sequence(数列)、Point(点)、Max(最大值)、Circle(圆)等 GeoGebra 命令/对象;④适合高中及以上学生学习抛物线性质及光学原理,也可用于物理教学。

GeoGebra 命令及参数

  1. Sequence((k, (-4 * a)), k, (-n), n, (2 * n / Nbpt)) → Lpbas
  2. Point(yAxis) → A
  3. Sequence((k, y(A)), k, (-n), n, (2 * n / Nbpt)) → Lphaut
  4. Sequence(((1 - t) * Element[Lphaut, k]) + (t * Element[Lpbas, k]), k, 1, Length[Lphaut]) → Lptvermob
  5. Sequence(Segment[Element[Lphaut, k], Element[Lptvermob, k]], k, 1, Length[Lphaut]) → Lsegver
  6. Sequence(Intersect[f, Element[Lsegver, k]], k, 1, Length[Lphaut]) → Lpinter
  7. Sequence(PolyLine[Element[Lphaut, k], Element[Lpinter, k], (0, (4 * a))], k, 1, Length[Lphaut]) → Lbris
  8. Sequence(Tangent[Element[Lpinter, k], f], k, 1, Length[Lphaut]) → Ltan
  9. Sequence(If[y(((1 - t) * Element[Lphaut, k]) + (t * Element[Lpbas, k])) > y(Element[Lpinter, k]), ((1 - t) * Element[Lphaut, k]) + (t * Element[Lpbas, k]), Mirror[((1 - t) * Element[Lphaut, k]) + (t * Element[Lpbas, k]), Element[Ltan, k]]], k, 1, Length[Lphaut]) → Lptmob
  10. Sequence(Segment[Element[Lpinter, k], Element[Lptmob, k]], k, 1, Length[Lphaut]) → l4
  11. Sequence(PolyLine[Element[Lphaut, k], Element[Lpinter, k]], k, 1, Length[Lphaut]) → l5
  12. Sequence(If[y(Element[Lptvermob, k]) ≥ y(Element[Lpinter, k]), Segment[Element[Lphaut, k], Element[Lptmob, k]], Segment[Element[Lpinter, k], Element[Lptmob, k]]], k, 1, Length[Lphaut]) → l6
  13. Sequence(If[y(Element[Lptvermob, k]) < y(Element[Lpinter, k]), Segment[Element[Lphaut, k], Element[Lpinter, k]]], k, 1, Length[Lphaut]) → l7
  14. Sequence(If[Distance[Element[Lptmob, k], Element[Lpinter, k]] < 0.25, Tangent[Element[Lpinter, k], f]], k, 1, Length[Lphaut]) → Lptanvar
  15. Max(t - 0.08, 0) → t'
  16. Sequence(((1 - t') * Element[Lphaut, k]) + (t' * Element[Lpbas, k]), k, 1, Length[Lphaut]) → l1
  17. Sequence(Vector[Element[l1, k], Element[Lptvermob, k]], k, 1, Length[Lphaut]) → l2
  18. Sequence(If[y(((1 - t') * Element[Lphaut, k]) + (t' * Element[Lpbas, k])) > y(Element[Lpinter, k]), ((1 - t') * Element[Lphaut, k]) + (t' * Element[Lpbas, k]), Mirror[((1 - t') * Element[Lphaut, k]) + (t' * Element[Lpbas, k]), Element[Ltan, k]]], k, 1, Length[Lphaut]) → Lptmob'
  19. Sequence(Vector[Element[Lptmob', k], Element[Lptmob, k]], k, 1, Length[Lphaut]) → l3
  20. Sequence(Segment[Element[Lphaut, k], Element[l1, k]], k, 1, Length[Lphaut]) → l9
  21. Sequence(If[t ≤ 1, PolyLine[Element[Lphaut, k], Element[Lpinter, k], Element[Lptmob', k]], PolyLine[Element[Lphaut, k], Element[Lpinter, k], Foyer]], k, 1, Length[Lphaut]) → l8
  22. Circle(Foyer, If[t ≤ 1.1, ((40 * a) * (t - 1))]) → c