时间-地点图:分析人物上学路程

时间-地点图:分析人物上学路程
几何画板及绘图内容加载中,请稍等……
2025-07-31 17:04
本范例通过时间-地点图展示人物上学路程,演示如何将实际行程转化为函数图像。核心数学概念包括函数表示、坐标几何与图形转换。作图要点涉及使用GeoGebra命令如Sequence、Point、PolyLine等构建图形。适合中学数学教学,用于理解函数与实际问题的联系。

GeoGebra 命令及参数

  1. Sequence(Random[1, 10], i, 1, 10) → randomNumbers, {5, 8, 4, 4, 2, 6, 8, 10, 2, 10}
  2. Element(randomNumbers, Mod[questionCount, Length[randomNumbers]] + 1) → randomNumber
  3. Textfield(input) → inputBox
  4. Join({Sequence[Segment[Corner[4] + (RasterPixMat * ((k * RasterStepXY), 0)), Corner[4] + (RasterPixMat * ((k * RasterStepXY), RasterMaxY))], k, 0, RasterMaxX / RasterStepXY], Sequence[Segment[Corner[4] + (RasterPixMat * (0, (k * RasterStepXY))), Corner[4] + (RasterPixMat * (RasterMaxX, (k * RasterStepXY)))], k, 0, RasterMaxY / RasterStepXY]}) → RasterStrecken
  5. Join({Sequence[Text[UnicodeToLetter[65 + k], Midpoint[Corner[4] + (RasterPixMat * ((k * RasterStepXY), RasterMaxY)), Corner[4] + (RasterPixMat * (((k + 1) * RasterStepXY), RasterMaxY))], false, true, 0, -1], k, 0, RasterMaxX / RasterStepXY - 1], Sequence[Text[("" * k), Midpoint[Corner[4] + (RasterPixMat * (RasterMaxX, ((k - 1) * RasterStepXY))), Corner[4] + (RasterPixMat * (RasterMaxX, (k * RasterStepXY)))], false, true, 1, 0], k, 1, RasterMaxY / RasterStepXY]}) → RasterBeschriftung
  6. Sequence(Sequence[Corner[4] + (RasterPixMat * ((k * RasterStepXY), (m * RasterStepXY))), k, 0, RasterMaxX / RasterStepXY], m, 0, RasterMaxY / RasterStepXY) → RasterPunkte
  7. PolyLine(PosSB, Corner[txt021, 1] + (-0.1, 0.25), Corner[txt021, 1] + (-0.1, -0.1), Corner[txt021, 2] + (0.1, -0.1), Corner[txt021, 3] + (0.1, 0.1), Corner[txt021, 4] + (-0.1, 0.1), Corner[txt021, 1] + (-0.1, 0.75), PosSB) → sb02
  8. PolyLine(PosSB, Corner[txt041, 1] + (0.25, -0.1), Corner[txt041, 2] + (0.1, -0.1), Corner[txt041, 3] + (0.1, 0.1), Corner[txt041, 4] + (-0.1, 0.1), Corner[txt041, 1] + (-0.1, 0.25), PosSB) → sb04
  9. PolyLine(PosSB, Corner[txt051, 1] + (0.25, -0.1), Corner[txt051, 2] + (0.1, -0.1), Corner[txt051, 3] + (0.1, 0.1), Corner[txt051, 4] + (-0.1, 0.1), Corner[txt051, 1] + (-0.1, 0.25), PosSB) → sb05
  10. PolyLine(PosSB, Corner[txt061, 1] + (0.25, -0.1), Corner[txt061, 2] + (0.1, -0.1), Corner[txt061, 3] + (0.1, 0.1), Corner[txt061, 4] + (-0.1, 0.1), Corner[txt061, 1] + (-0.1, 0.25), PosSB) → sb06
  11. PolyLine(PosSB, Corner[txt071, 1] + (0.25, -0.1), Corner[txt071, 2] + (0.1, -0.1), Corner[txt071, 3] + (0.1, 0.1), Corner[txt071, 4] + (-0.1, 0.1), Corner[txt071, 1] + (-0.1, 0.25), PosSB) → sb07
  12. PolyLine(PosSB, Corner[txt081, 1] + (0.25, -0.1), Corner[txt081, 2] + (0.1, -0.1), Corner[txt081, 3] + (0.1, 0.1), Corner[txt081, 4] + (-0.1, 0.1), Corner[txt081, 1] + (-0.1, 0.25), PosSB) → sb08
  13. PolyLine(PosSB, Corner[txt091, 1] + (0.25, -0.1), Corner[txt091, 2] + (0.1, -0.1), Corner[txt091, 3] + (0.1, 0.1), Corner[txt091, 4] + (-0.1, 0.1), Corner[txt091, 1] + (-0.1, 0.25), PosSB) → sb09
  14. PolyLine(PosSB, Corner[txt092, 1] + (0.25, -0.1), Corner[txt092, 2] + (0.1, -0.1), Corner[txt092, 3] + (0.1, 0.1), Corner[txt092, 4] + (-0.1, 0.1), Corner[txt092, 1] + (-0.1, 0.25), PosSB) → sb092
  15. If(step < 10, 5, 6) → lengthY
  16. If(step < 10 ∨ step ≟ 13, 2, 5) → stepY
  17. PolyLine(PointList2) → func2
  18. Point(func2) → PointP
  19. If(PointP ≟ PointList2(1), 1, x(PointList2(5)) ≤ x(PointP) < x(PointList2(6)), 6, x(PointList2(6)) ≤ x(PointP) ≤ x(PointList2(7)), 7, x(PointList2(1)) < x(PointP) < x(PointList2(2)), 2, x(PointList2(2)) ≤ x(PointP) < x(PointList2(3)), 3, x(PointList2(3)) ≤ x(PointP) < x(PointList2(4)), 4, x(PointList2(4)) ≤ x(PointP) < x(PointList2(5)), 5) → pos11
  20. PolyLine(PosSB, Corner[txt112, 1] + (0.25, -0.1), Corner[txt112, 2] + (0.1, -0.1), Corner[txt112, 3] + (0.1, 0.1), Corner[txt112, 4] + (-0.1, 0.1), Corner[txt112, 1] + (-0.1, 0.25), PosSB) → sb112
  21. PolyLine(PosSB, Corner[txt113, 1] + (0.25, -0.1), Corner[txt113, 2] + (0.1, -0.1), Corner[txt113, 3] + (0.1, 0.1), Corner[txt113, 4] + (-0.1, 0.1), Corner[txt113, 1] + (-0.1, 0.25), PosSB) → sb113
  22. PolyLine(PosSB, Corner[txt114, 1] + (0.25, -0.1), Corner[txt114, 2] + (0.1, -0.1), Corner[txt114, 3] + (0.1, 0.1), Corner[txt114, 4] + (-0.1, 0.1), Corner[txt114, 1] + (-0.1, 0.25), PosSB) → sb114
  23. PolyLine(PosSB, Corner[txt115, 1] + (0.25, -0.1), Corner[txt115, 2] + (0.1, -0.1), Corner[txt115, 3] + (0.1, 0.1), Corner[txt115, 4] + (-0.1, 0.1), Corner[txt115, 1] + (-0.1, 0.25), PosSB) → sb115
  24. PolyLine(PosSB, Corner[txt116, 1] + (0.25, -0.1), Corner[txt116, 2] + (0.1, -0.1), Corner[txt116, 3] + (0.1, 0.1), Corner[txt116, 4] + (-0.1, 0.1), Corner[txt116, 1] + (-0.1, 0.25), PosSB) → sb116
  25. PolyLine(PosSB, Corner[txt117, 1] + (0.25, -0.1), Corner[txt117, 2] + (0.1, -0.1), Corner[txt117, 3] + (0.1, 0.1), Corner[txt117, 4] + (-0.1, 0.1), Corner[txt117, 1] + (-0.1, 0.25), PosSB) → sb117
  26. Sequence(Sequence[PosTable + (Sum[ListSpalte, k], (-Sum[ListZeile, m])), k, 0, 2], m, 0, 5) → TablePosMat
  27. Text("\textsf{Die Person ...\vphantom{g}}", Midpoint[TablePosMat(1, 1), TablePosMat(2, 1)], false, true, 1, 0) → CapTable11
  28. Text("\textsf{Der Graph ...\vphantom{g}}", Midpoint[TablePosMat(1, 2), TablePosMat(2, 2)], false, true, 1, 0) → CapTable12
  29. Text("\textsf{steigt\vphantom{g}}", Midpoint[TablePosMat(3, 2), TablePosMat(4, 2)], false, true, 1, 0) → Cap32
  30. Text("\textsf{steigt\vphantom{g}}", Midpoint[TablePosMat(4, 2), TablePosMat(5, 2)], false, true, 1, 0) → Cap42
  31. SelectedIndex(dropdown131) → index131
  32. SelectedIndex(dropdown132) → index132
  33. Midpoint(PosImgHaus1, PosImgHaus2) → SP01
  34. Spline(SPList, 3) → Spline01
  35. Segment(Origin + (0, (-segLength)), Origin + (0, lengthY + edgeAxis)) → segY
  36. Segment(Origin + ((-segLength), 0), Origin + (lengthX + edgeAxis, 0)) → segX
  37. Sequence(Origin + ((lengthX / stepX * k) * (1, 0)), k, 0, stepX) → PointXList
  38. Sequence(Origin + ((lengthY / stepY * k) * (0, 1)), k, 0, stepY) → PointYList
  39. Sequence(Segment[PointXList(k) + (0, (-segLength)), PointXList(k) + (0, segLength)], k, 2, stepX + 1) → SegXList
  40. Sequence(Segment[PointYList(k) + ((-segLength), 0), PointYList(k) + (segLength, 0)], k, 2, stepY + 1) → SegYList
  41. Sequence(Text[(("\textsf{" * Element[{(If[step ≟ 4, "\bold{", "{"] * "7:00}"), (If[step ≟ 5 ∧ false, "\bold{", "{"] * "7:10}"), "7:20", "7:30", "7:40"}, k]) * "}"), PointXList(k) + (0, (-segLength)), false, true, 0, -1], k, 1, stepX + 1) → CapXAxis1
  42. Segment(PointList1(1), PointList1(1) + (anim04 * (PointList1(2) - PointList1(1)))) → seg04
  43. PolyLine(Take[PointList1, 1, step - 3]) → func1
  44. Segment(PointList1(2), PointList1(2) + (anim05 * (PointList1(3) - PointList1(2)))) → seg05
  45. Segment(PointList1(4), PointList1(4) + (anim07 * (PointList1(5) - PointList1(4)))) → seg07
  46. Segment(PointList1(3), PointList1(3) + (anim06 * (PointList1(4) - PointList1(3)))) → seg06
  47. Segment(PointList1(6), PointList1(6) + (anim09 * (PointList1(7) - PointList1(6)))) → seg09
  48. Segment(PointList1(5), PointList1(5) + (anim08 * (PointList1(6) - PointList1(5)))) → seg08
  49. Sequence(Text[(("\textsf{" * Element[{"0", "1", "2", "3", "4", "5"}, k]) * "}"), PointYList(k) + ((-segLength), 0.05), false, true, -1, 0], k, 1, stepY + 1) → CapYAxis1
  50. Text("\textsf{\bold{Zieh mich!}}", PointP + (0.75, 0.6), false, true, -1, 1) → CapZiehMich
  51. Translate(Segment[PointList2(1), PointList2(1) + (0.5 * UnitVector[Vector[PointList2(1), PointList2(2)]])], Vector[(-0.25, 0.25)]) → arrowZiehMich
  52. If(pos11 ≟ 1, Segment[PointList2(1), PointList2(2)], Segment[PointList2(pos11 - 1), PointList2(pos11)]) → seg11
  53. If(step ≟ 4, anim04 ∈ {0, 1}, step ≟ 9, anim09 ∈ {0, 1}, true, step ≟ 5, anim05 ∈ {0, 1}, step ≟ 6, anim06 ∈ {0, 1}, step ≟ 7, anim07 ∈ {0, 1}, step ≟ 8, anim08 ∈ {0, 1}) → clickableBtnBack
  54. If(step ≟ 1.5, false, step ≟ 6, anim06 ≟ 1, step ≟ 7, anim07 ≟ 1, step ≟ 8, anim08 ≟ 1, step ≟ 9, true, step ≟ 11, pos11 ≟ 7, step ≟ 2, true, false, step ≟ 3, anim03 ≟ 1, step ≟ 4, anim04 ≟ 1, step ≟ 5, anim05 ≟ 1) → clickableBtnNext
  55. PolyLine(PosSB, Corner[txt012, 1] + (0.25, -0.1), Corner[txt012, 2] + (0.1, -0.1), Corner[txt012, 3] + (0.1, 0.1), Corner[txt012, 4] + (-0.1, 0.1), Corner[txt012, 1] + (-0.1, 0.25), PosSB) → sb01
  56. Take(CapXAxis1, 1, (Length[CapXAxis1] * anim02)) → AnimCapXAxis1
  57. Take(Join[{{Segment[(1000, 1000), (1000, 1000)]}, SegXList}], 1, ((Length[SegXList] + 1) * anim02)) → AnimSegXList
  58. Text((("\colorbox{" * If[step ≟ 2, "#ce8dba", "#ffffff00"]) * "}{\textsf{Uhrzeit}}"), Origin + (lengthX + edgeAxis, 0.05), false, true, 1, 0) → CapX1
  59. Take(CapYAxis1, 1, (Length[CapYAxis1] * anim03)) → AnimCapYAxis1
  60. Take(Join[{{Segment[(1000, 1000), (1000, 1000)]}, SegYList}], 1, ((Length[SegYList] + 1) * anim03)) → AnimSegYList
  61. PolyLine(PosSB, Corner[txt032, 1] + (0.25, -0.1), Corner[txt032, 2] + (0.1, -0.1), Corner[txt032, 3] + (0.1, 0.1), Corner[txt032, 4] + (-0.1, 0.1), Corner[txt032, 1] + (-0.1, 0.25), PosSB) → sb032
  62. Text("\textsf{bewegt sich schnell.\vphantom{g}}", Midpoint[TablePosMat(3, 1), TablePosMat(4, 1)], false, true, 1, 0) → CapTable31
  63. Text("\textsf{bewegt sich langsam.\vphantom{g}}", Midpoint[TablePosMat(4, 1), TablePosMat(5, 1)], false, true, 1, 0) → CapTable41
  64. Text("\textsf{bewegt sich zurück.\vphantom{g}}", Midpoint[TablePosMat(5, 1), TablePosMat(6, 1)], false, true, 1, 0) → CapTable51
  65. Text("\textsf{verläuft parallel zur\\Zeitachse (x-Achse).\vphantom{g}}", Midpoint[TablePosMat(2, 2), TablePosMat(3, 2)] + (0, -0.05), false, true, 1, 0) → Cap22
  66. Text("\textsf{\bold{Zeit-Ort-Diagramm}}", TablePosMat(1, 2) + (0, 0.1 - 0.15), false, true, 0, 1) → CapTable
  67. Segment(Origin2 + (scaleFactor * ((-segLength), 0)), Origin2 + (scaleFactor * (lengthX + edgeAxis, 0))) → segX2
  68. Segment(Origin2 + (scaleFactor * (0, (-segLength))), Origin2 + (scaleFactor * (0, lengthY + edgeAxis))) → segY2
  69. Sequence(Origin2 + (((scaleFactor * lengthX / stepX) * k) * (1, 0)), k, 0, stepX) → PointXList2
  70. Sequence(Origin2 + (((scaleFactor * lengthY / stepY) * k) * (0, 1)), k, 0, stepY) → PointYList2
  71. Sequence(Segment[PointXList2(k) + (scaleFactor * (0, (-segLength))), PointXList2(k) + (scaleFactor * (0, segLength))], k, 2, stepX + 1) → SegXList2
  72. Sequence(Segment[PointYList2(k) + (scaleFactor * ((-segLength), 0)), PointYList2(k) + (scaleFactor * (segLength, 0))], k, 2, stepY + 1) → SegYList2
  73. Sequence(Text[(("\scriptsize{\textsf{" * Element[{(If[step ≟ 4, "\bold{", "{"] * "7:00}"), (If[step ≟ 5, "\bold{", "{"] * "7:10}"), "7:20", "7:30", "7:40"}, k]) * "}}"), PointXList2(k) + (scaleFactor * (0, (-segLength))), false, true, 0, -1], k, 1, stepX + 1) → CapXAxis2
  74. Sequence(Text[(("\scriptsize{\textsf{" * Element[{"0", "1", "2", "3", "4", "5"}, k]) * "}}"), PointYList2(k) + (scaleFactor * ((-segLength), 0.05)), false, true, -1, 0], k, 1, stepY + 1) → CapYAxis2
  75. Segment(PointList13(1), PointList13(2)) → seg131
  76. Segment(PointList13(2), PointList13(3)) → seg132
  77. Segment(PointList13(3), PointList13(4)) → seg133
  78. Segment(PointList13(4), PointList13(5)) → seg134
  79. Segment(PointList13(5), PointList13(6)) → seg135
  80. Segment(PointList13(6), PointList13(7)) → seg136
  81. Text("\textsf{steht.\vphantom{g}}", Midpoint[TablePosMat(2, 1), TablePosMat(3, 1)], false, true, 1, 0) → CapTable21
  82. Text((("\colorbox{" * If[step ≟ 3, "#ce8dba", "#ffffff00"]) * "}{\textsf{Entfernung von zu Hause in km}}"), Origin + (0.05 - 0.65, lengthY + edgeAxis + (2 * segLength) + 0.35), false, true, 1, 0) → CapY1
  83. PolyLine(PosSB, Corner[txt031, 1] + (-0.1, 0.25), Corner[txt031, 1] + (-0.1, -0.1), Corner[txt031, 2] + (0.1, -0.1), Corner[txt031, 3] + (0.1, 0.1), Corner[txt031, 4] + (-0.1, 0.1), Corner[txt031, 1] + (-0.1, 0.75), PosSB) → sb03
  84. Text("\textsf{fällt.\vphantom{g}}", Midpoint[TablePosMat(5, 2), TablePosMat(6, 2)], false, true, 1, 0) → Cap52