Understanding Geometry and Functions with GeoGebra

Understanding Geometry and Functions with GeoGebra
Loading the math board and drawing, please wait…
2026-01-21 17:56
This example demonstrates how to use GeoGebra to create geometric shapes and function graphs, helping students connect geometry and algebra. Key mathematical concepts include geometric construction, function graphing, and coordinate geometry. Construction involves using commands like Sequence, Ellipse, and CircleArc. Suitable for middle or high school math learning to enhance geometric intuition a

GeoGebra Commands & Parameters

  1. Sequence(Random[1, 10], i, 1, 10) → randomNumbers, {5, 2, 10, 5, 5, 7, 3, 9, 6, 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. Ellipse(Midpoint[PointsAZK(1), PointsAZK(2)] + (sqrt(Distance[PointsAZK(2), Midpoint[PointsAZK(1), PointsAZK(2)]]^(2) - Distance[PointsBZK(2), Midpoint[PointsAZK(1), PointsAZK(2)]]^(2)), 0), Midpoint[PointsAZK(1), PointsAZK(2)] + ((-sqrt(Distance[PointsAZK(2), Midpoint[PointsAZK(1), PointsAZK(2)]]^(2) - Distance[PointsBZK(2), Midpoint[PointsAZK(1), PointsAZK(2)]]^(2))), 0), Distance[PointsAZK(1), PointsAZK(2)] / 2) → ellZK
  8. If(step ∈ {3, 4}, -2, step ∈ {6, 7}, -3, step ∈ {9, 10}, -1, 1) → numberStone1
  9. If(step ∈ {3, 4}, 3, step ∈ {6, 7}, -2, step ∈ {9, 10}, 4, -7) → numberStone2
  10. If(step ∈ {3, 4, 12, 13}, PointParkedStones(1), PointZKStones(1)) → PStone2
  11. Sequence(IsInRegion[AllPStones(k), RegionZK(1)], k, 1, Length[AllPStones]) → StoneInRegion
  12. Sum(Sequence[If[StoneInRegion(k), AllNumbersStones(k), 0], k, 1, Length[AllNumbersStones]]) → actualTemperature
  13. Sequence(PointsThermoEnd(1) + (k * (0, Distance[PointsThermoEnd(1), PointsThermoEnd(2)] / (thermoEnd - thermoStart))), k, 0, thermoEnd - thermoStart, 1) → PointsThermo
  14. RemoveUndefined(Sequence[If[Mod[TemperatureList(k), thermoStepMark] ≟ 0, Segment[PointsThermo(k) + (((-segLengthThermo)) / 2, 0), PointsThermo(k) + (segLengthThermo / 2, 0)]], k, 1, Length[PointsThermo]]) → segMarkThermo
  15. RemoveUndefined(Sequence[If[Mod[TemperatureList(k), thermoStepCap] ≟ 0, Text[((("\textsf{\(" * If[TemperatureList(k) > 0, "+", ""]) * TemperatureList(k)) * "\)}"), PointsThermo(k) + ((6 / 5 * segLengthThermo), 0.05), false, true, 0, 0]], k, 1, Length[PointsThermo]]) → CapThermo
  16. Text(((("\textsf{\bold{\(" * If[actualTemperature > 0, "+", ""]) * actualTemperature) * "\)}}"), PointsThermo(IndexOf[actualTemperature, TemperatureList]) + ((-6 / 5 * segLengthThermo), 0.05), false, true, 0, 0) → CapActualTemperature
  17. Sequence(((dimStoneA * cos(k°)), (dimStoneB * sin(k°))), k, 0, 360, 5) → PointStone
  18. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone1 > 0, "+", numberStone1 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone1)), (abs(numberStone1) * "")]) * "}}}"), PStone1 + (0, 0.05), false, true, 0, 0) → txtStone1
  19. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone2 > 0, "+", numberStone2 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone2)), (abs(numberStone2) * "")]) * "}}}"), PStone2 + (0, 0.05), false, true, 0, 0) → txtStone2
  20. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone3 > 0, "+", numberStone3 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone3)), (abs(numberStone3) * "")]) * "}}}"), PStone3 + (0, 0.05), false, true, 0, 0) → txtStone3
  21. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone4 > 0, "+", numberStone4 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone4)), (abs(numberStone4) * "")]) * "}}}"), PStone4 + (0, 0.05), false, true, 0, 0) → txtStone4
  22. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone5 > 0, "+", numberStone5 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone5)), (abs(numberStone5) * "")]) * "}}}"), PStone5 + (0, 0.05), false, true, 0, 0) → txtStone5
  23. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone6 > 0, "+", numberStone6 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone6)), (abs(numberStone6) * "")]) * "}}}"), PStone6 + (0, 0.05), false, true, 0, 0) → txtStone6
  24. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone7 > 0, "+", numberStone7 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone7)), (abs(numberStone7) * "")]) * "}}}"), PStone7 + (0, 0.05), false, true, 0, 0) → txtStone7
  25. Textfield(input041) → InputBox041
  26. Textfield(input071) → InputBox071
  27. Textfield(input101) → InputBox101
  28. Textfield(input131) → InputBox131
  29. SelectedIndex(dropdown041) → index041
  30. SelectedIndex(dropdown071) → index071
  31. SelectedIndex(dropdown101) → index101
  32. SelectedIndex(dropdown131) → index131
  33. Sequence(Sequence[PosTable + (Sum[ListSpalte, k], (-Sum[ListZeile, m])), k, 0, 2], m, 0, 5) → TablePosMat
  34. Sequence(Sequence[PosTable1 + (Sum[ListSpalte, k], (-Sum[ListZeile, m])), k, 0, 2], m, 0, 1) → TablePosMat1
  35. Text((((("\textsf{\bold{" * If[actualTemperature > 0, "+", ""]) * "\(") * actualTemperature) * "\) °C}}"), PosDigitaleAnzeige + (0, 0.05), false, true, 0, 0) → txtDigitaleAnzeige
  36. UnitOrthogonalVector(Segment[PointParkedStones(1), PointZKStones(1)]) → vBogenZK1
  37. UnitOrthogonalVector(Segment[PointZKStones(4), PointParkedStones(2)]) → vBogenZK2
  38. CircleArc(Midpoint[Vertex[randStoneParked1(1), 18], Vertex[randStoneZK1(1), 18]] + (0.5 * vBogenZK1), Vertex[randStoneParked1(1), 18], Vertex[randStoneZK1(1), 18]) → bogenZK1
  39. CircleArc(Midpoint[Vertex[randStoneZK2(1), 54], Vertex[randStoneParked2(1), 54]] + (0.5 * vBogenZK2), Vertex[randStoneZK2(1), 54], Vertex[randStoneParked2(1), 54]) → bogenZK2
  40. Segment(Point[bogenZK1, 0], Point[bogenZK1, 0] + (0.01 * UnitVector[Tangent[Point[bogenZK1, 0], bogenZK1]])) → arrowBogenParked1
  41. Segment(Point[bogenZK2, 1], Point[bogenZK2, 1] - (0.01 * UnitVector[Tangent[Point[bogenZK2, 1], bogenZK2]])) → arrowBogenParked2
  42. Segment(Point[bogenZK1, 1], Point[bogenZK1, 1] - (0.01 * UnitVector[Tangent[Point[bogenZK1, 1], bogenZK1]])) → arrowBogenZK1
  43. Segment(Point[bogenZK2, 0], Point[bogenZK2, 0] + (0.01 * UnitVector[Tangent[Point[bogenZK2, 0], bogenZK2]])) → arrowBogenZK2
  44. Segment(Midpoint[Corner[txtE011, 3], Corner[txtE011, 4]], Midpoint[Corner[txtE011, 3], Corner[txtE011, 4]] + (0.85 * Vector[Midpoint[Corner[txtE011, 3], Corner[txtE011, 4]], PosArrowE01(1)])) → arrowE011
  45. Segment(Midpoint[Corner[txtE012, 3], Corner[txtE012, 4]], Midpoint[Corner[txtE012, 3], Corner[txtE012, 4]] + (0.85 * Vector[Midpoint[Corner[txtE012, 3], Corner[txtE012, 4]], PosArrowE01(2)])) → arrowE012
  46. Segment(PosArrowAnimStart01, PosArrowAnimEnd01) → arrowAnim01
  47. Segment(PosArrowAnimStart02, PosArrowAnimEnd02) → arrowAnim02
  48. Segment(PosArrowStart1, PosArrowStart2) → arrowStart
  49. If(step ∈ {2, 5, 8, 11, 14}, true ∈ OptionList, true, step ≟ 4, correctdd041 ∧ anim04 ≟ 2 ∧ correct041, step ≟ 7, correctdd071 ∧ anim07 ≟ 2 ∧ correct071, step ≟ 10, correctdd101 ∧ anim10 ≟ 2 ∧ correct101, step ≟ 13, correctdd131 ∧ anim13 ≟ 2 ∧ correct131) → clickableBtnNext
  50. Element({Text["\textsf{\(+\) (\(+\))\phantom{ }→\phantom{ }\(+\)\vphantom{g}}", Midpoint[TablePosMat1(1, 1), TablePosMat1(2, 2)], false, true, 0, 0], Text["\textsf{\(-\) (\(-\))\phantom{ }→\phantom{ }\(+\)\vphantom{g}}", Midpoint[TablePosMat1(1, 1), TablePosMat1(2, 2)], false, true, 0, 0], Text["\textsf{\(-\) (\(+\))\phantom{ }→\phantom{ }\(-\)\vphantom{g}}", Midpoint[TablePosMat1(1, 1), TablePosMat1(2, 2)], false, true, 0, 0], Text["\textsf{\(+\) (\(-\))\phantom{ }→\phantom{ }\(-\)\vphantom{g}}", Midpoint[TablePosMat1(1, 1), TablePosMat1(2, 2)], false, true, 0, 0]}, If[3 ≤ step ≤ 4, 1, 6 ≤ step ≤ 7, 2, 9 ≤ step ≤ 10, 3, 4]) → txtRechenregel
  51. Sequence(Text[(("\large{\bold{\textsf{\textcolor{#006758}{" * If[DoneList(k), "✓\vphantom{g}", ""]) * "}}}}"), Midpoint[TablePosMat(1 + k, 3), TablePosMat(2 + k, 3)], false, true, 1, 0], k, 1, 4) → txtFeedbackTable
  52. If(step ≟ 4, anim04 ≟ 0 ∨ anim04 ≟ 2, step ≟ 7, anim07 ≟ 0 ∨ anim07 ≟ 2, step ≟ 10, anim10 ≟ 0 ∨ anim10 ≟ 2, step ≟ 13, anim13 ≟ 0 ∨ anim13 ≟ 2, true) → clickableBtnBack
  53. Text((("\textsf{(\(-2\)) \(+\) (\(+3\)) = " * If[done1, "\(-2\) \(+\) 3 = \(+1\)", "?"]) * "\vphantom{g}}"), Midpoint[TablePosMat(2, 2), TablePosMat(3, 3)], false, true, 0, 0) → txtTableRechnung1
  54. Text((("\textsf{(\(-5\)) \(-\) (\(-2\)) = " * If[done2, "\(-5\) \(+\) 2 = \(-3\)", "?"]) * "\vphantom{g}}"), Midpoint[TablePosMat(3, 2), TablePosMat(4, 3)], false, true, 0, 0) → txtTableRechnung2
  55. Text((("\textsf{(\(+3\)) \(-\) (\(+4\)) = " * If[done3, "\(+3\) \(-\) 4 = \(-1\)", "?"]) * "\vphantom{g}}"), Midpoint[TablePosMat(4, 2), TablePosMat(5, 3)], false, true, 0, 0) → txtTableRechnung3
  56. Text((("\textsf{(\(+1\)) \(+\) (\(-7\)) = " * If[done4, "\(+1\) \(-\) 7 = \(-6\)", "?"]) * "\vphantom{g}}"), Midpoint[TablePosMat(5, 2), TablePosMat(6, 3)], false, true, 0, 0) → txtTableRechnung4
  57. Text((("\textsf{\((-2\)) \(+\) (\(+3\)) = " * If[done1, "\(-2\) \(+\) 3 = \(+1\)", "?"]) * "\vphantom{g}}"), Midpoint[TablePosMat1(1, 2), TablePosMat1(2, 3)], false, true, 0, 0) → txtTableRechnung03
  58. Text((("\textsf{(\(-5\)) \(-\) (\(-2\)) = " * If[done2, "\(-5\) \(+\) 2 = \(-3\)", "?"]) * "\vphantom{g}}"), Midpoint[TablePosMat1(1, 2), TablePosMat1(2, 3)], false, true, 0, 0) → txtTableRechnung06
  59. Text((("\textsf{(\(+3\)) \(-\) (\(+4\)) = " * If[done3, "\(+3\) \(-\) 4 = \(-1\)", "?"]) * "\vphantom{g}}"), Midpoint[TablePosMat1(1, 2), TablePosMat1(2, 3)], false, true, 0, 0) → txtTableRechnung09
  60. Text((("\textsf{(\(+1\)) \(+\) (\(-7\)) = " * If[done4, "\(+1\) \(-\) 7 = \(-6\)", "?"]) * "\vphantom{g}}"), Midpoint[TablePosMat1(1, 2), TablePosMat1(2, 3)], false, true, 0, 0) → txtTableRechnung12
  61. Textfield(input031) → InputBox031
  62. Textfield(input061) → InputBox061
  63. Textfield(input091) → InputBox091
  64. Textfield(input121) → InputBox121
  65. SelectedIndex(dropdown031) → index031
  66. SelectedIndex(dropdown061) → index061
  67. SelectedIndex(dropdown091) → index091
  68. SelectedIndex(dropdown121) → index121