使用GeoGebra探索几何与函数关系

使用GeoGebra探索几何与函数关系
几何画板及绘图内容加载中,请稍等……
2026-01-21 17:56
这个范例展示了如何通过GeoGebra工具绘制几何图形和函数图像,帮助学生理解几何与代数之间的联系。核心数学概念包括几何作图、函数图像和坐标几何。作图要点涉及使用Sequence、Ellipse、CircleArc等GeoGebra命令,以及构造图形和标注。适合初中或高中数学学习,用于提升几何直观和函数分析能力。

GeoGebra 命令及参数

  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