Time-Ort-Diagram: Analyzing School Journey
Loading the math board and drawing, please wait…
In collections
Einführung Funktionsbegriff
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
Sequence(Random[1, 10], i, 1, 10) → randomNumbers, {5, 8, 4, 4, 2, 6, 8, 10, 2, 10}Element(randomNumbers, Mod[questionCount, Length[randomNumbers]] + 1) → randomNumberTextfield(input) → inputBoxJoin({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]}) → RasterStreckenJoin({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]}) → RasterBeschriftungSequence(Sequence[Corner[4] + (RasterPixMat * ((k * RasterStepXY), (m * RasterStepXY))), k, 0, RasterMaxX / RasterStepXY], m, 0, RasterMaxY / RasterStepXY) → RasterPunktePolyLine(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) → sb02PolyLine(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) → sb04PolyLine(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) → sb05PolyLine(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) → sb06PolyLine(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) → sb07PolyLine(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) → sb08PolyLine(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) → sb09PolyLine(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) → sb092If(step < 10, 5, 6) → lengthYIf(step < 10 ∨ step ≟ 13, 2, 5) → stepYPolyLine(PointList2) → func2Point(func2) → PointPIf(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) → pos11PolyLine(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) → sb112PolyLine(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) → sb113PolyLine(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) → sb114PolyLine(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) → sb115PolyLine(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) → sb116PolyLine(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) → sb117Sequence(Sequence[PosTable + (Sum[ListSpalte, k], (-Sum[ListZeile, m])), k, 0, 2], m, 0, 5) → TablePosMatText("\textsf{Die Person ...\vphantom{g}}", Midpoint[TablePosMat(1, 1), TablePosMat(2, 1)], false, true, 1, 0) → CapTable11Text("\textsf{Der Graph ...\vphantom{g}}", Midpoint[TablePosMat(1, 2), TablePosMat(2, 2)], false, true, 1, 0) → CapTable12Text("\textsf{steigt\vphantom{g}}", Midpoint[TablePosMat(3, 2), TablePosMat(4, 2)], false, true, 1, 0) → Cap32Text("\textsf{steigt\vphantom{g}}", Midpoint[TablePosMat(4, 2), TablePosMat(5, 2)], false, true, 1, 0) → Cap42SelectedIndex(dropdown131) → index131SelectedIndex(dropdown132) → index132Midpoint(PosImgHaus1, PosImgHaus2) → SP01Spline(SPList, 3) → Spline01Segment(Origin + (0, (-segLength)), Origin + (0, lengthY + edgeAxis)) → segYSegment(Origin + ((-segLength), 0), Origin + (lengthX + edgeAxis, 0)) → segXSequence(Origin + ((lengthX / stepX * k) * (1, 0)), k, 0, stepX) → PointXListSequence(Origin + ((lengthY / stepY * k) * (0, 1)), k, 0, stepY) → PointYListSequence(Segment[PointXList(k) + (0, (-segLength)), PointXList(k) + (0, segLength)], k, 2, stepX + 1) → SegXListSequence(Segment[PointYList(k) + ((-segLength), 0), PointYList(k) + (segLength, 0)], k, 2, stepY + 1) → SegYListSequence(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) → CapXAxis1Segment(PointList1(1), PointList1(1) + (anim04 * (PointList1(2) - PointList1(1)))) → seg04PolyLine(Take[PointList1, 1, step - 3]) → func1Segment(PointList1(2), PointList1(2) + (anim05 * (PointList1(3) - PointList1(2)))) → seg05Segment(PointList1(4), PointList1(4) + (anim07 * (PointList1(5) - PointList1(4)))) → seg07Segment(PointList1(3), PointList1(3) + (anim06 * (PointList1(4) - PointList1(3)))) → seg06Segment(PointList1(6), PointList1(6) + (anim09 * (PointList1(7) - PointList1(6)))) → seg09Segment(PointList1(5), PointList1(5) + (anim08 * (PointList1(6) - PointList1(5)))) → seg08Sequence(Text[(("\textsf{" * Element[{"0", "1", "2", "3", "4", "5"}, k]) * "}"), PointYList(k) + ((-segLength), 0.05), false, true, -1, 0], k, 1, stepY + 1) → CapYAxis1Text("\textsf{\bold{Zieh mich!}}", PointP + (0.75, 0.6), false, true, -1, 1) → CapZiehMichTranslate(Segment[PointList2(1), PointList2(1) + (0.5 * UnitVector[Vector[PointList2(1), PointList2(2)]])], Vector[(-0.25, 0.25)]) → arrowZiehMichIf(pos11 ≟ 1, Segment[PointList2(1), PointList2(2)], Segment[PointList2(pos11 - 1), PointList2(pos11)]) → seg11If(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}) → clickableBtnBackIf(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) → clickableBtnNextPolyLine(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) → sb01Take(CapXAxis1, 1, (Length[CapXAxis1] * anim02)) → AnimCapXAxis1Take(Join[{{Segment[(1000, 1000), (1000, 1000)]}, SegXList}], 1, ((Length[SegXList] + 1) * anim02)) → AnimSegXListText((("\colorbox{" * If[step ≟ 2, "#ce8dba", "#ffffff00"]) * "}{\textsf{Uhrzeit}}"), Origin + (lengthX + edgeAxis, 0.05), false, true, 1, 0) → CapX1Take(CapYAxis1, 1, (Length[CapYAxis1] * anim03)) → AnimCapYAxis1Take(Join[{{Segment[(1000, 1000), (1000, 1000)]}, SegYList}], 1, ((Length[SegYList] + 1) * anim03)) → AnimSegYListPolyLine(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) → sb032Text("\textsf{bewegt sich schnell.\vphantom{g}}", Midpoint[TablePosMat(3, 1), TablePosMat(4, 1)], false, true, 1, 0) → CapTable31Text("\textsf{bewegt sich langsam.\vphantom{g}}", Midpoint[TablePosMat(4, 1), TablePosMat(5, 1)], false, true, 1, 0) → CapTable41Text("\textsf{bewegt sich zurück.\vphantom{g}}", Midpoint[TablePosMat(5, 1), TablePosMat(6, 1)], false, true, 1, 0) → CapTable51Text("\textsf{verläuft parallel zur\\Zeitachse (x-Achse).\vphantom{g}}", Midpoint[TablePosMat(2, 2), TablePosMat(3, 2)] + (0, -0.05), false, true, 1, 0) → Cap22Text("\textsf{\bold{Zeit-Ort-Diagramm}}", TablePosMat(1, 2) + (0, 0.1 - 0.15), false, true, 0, 1) → CapTableSegment(Origin2 + (scaleFactor * ((-segLength), 0)), Origin2 + (scaleFactor * (lengthX + edgeAxis, 0))) → segX2Segment(Origin2 + (scaleFactor * (0, (-segLength))), Origin2 + (scaleFactor * (0, lengthY + edgeAxis))) → segY2Sequence(Origin2 + (((scaleFactor * lengthX / stepX) * k) * (1, 0)), k, 0, stepX) → PointXList2Sequence(Origin2 + (((scaleFactor * lengthY / stepY) * k) * (0, 1)), k, 0, stepY) → PointYList2Sequence(Segment[PointXList2(k) + (scaleFactor * (0, (-segLength))), PointXList2(k) + (scaleFactor * (0, segLength))], k, 2, stepX + 1) → SegXList2Sequence(Segment[PointYList2(k) + (scaleFactor * ((-segLength), 0)), PointYList2(k) + (scaleFactor * (segLength, 0))], k, 2, stepY + 1) → SegYList2Sequence(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) → CapXAxis2Sequence(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) → CapYAxis2Segment(PointList13(1), PointList13(2)) → seg131Segment(PointList13(2), PointList13(3)) → seg132Segment(PointList13(3), PointList13(4)) → seg133Segment(PointList13(4), PointList13(5)) → seg134Segment(PointList13(5), PointList13(6)) → seg135Segment(PointList13(6), PointList13(7)) → seg136Text("\textsf{steht.\vphantom{g}}", Midpoint[TablePosMat(2, 1), TablePosMat(3, 1)], false, true, 1, 0) → CapTable21Text((("\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) → CapY1PolyLine(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) → sb03Text("\textsf{fällt.\vphantom{g}}", Midpoint[TablePosMat(5, 2), TablePosMat(6, 2)], false, true, 1, 0) → Cap52