Time-Ort-Diagram: Analyzing School Journey

Time-Ort-Diagram: Analyzing School Journey
Loading the math board and drawing, please wait…
2025-07-31 17:04
This example demonstrates how to represent school journey as a time-ort diagram, converting real-world travel into function graphs. Key mathematical concepts include function representation, coordinate geometry, and graphical transformation. Construction involves GeoGebra commands such as Sequence, Point, PolyLine. Suitable for middle school mathematics teaching to connect functions with practical

GeoGebra Commands & Parameters

  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