使用GeoGebra探索几何与函数关系
几何画板及绘图内容加载中,请稍等……
这个范例展示了如何通过GeoGebra工具绘制几何图形和函数图像,帮助学生理解几何与代数之间的联系。核心数学概念包括几何作图、函数图像和坐标几何。作图要点涉及使用Sequence、Ellipse、CircleArc等GeoGebra命令,以及构造图形和标注。适合初中或高中数学学习,用于提升几何直观和函数分析能力。
GeoGebra 命令及参数
Sequence(Random[1, 10], i, 1, 10) → randomNumbers, {5, 2, 10, 5, 5, 7, 3, 9, 6, 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) → RasterPunkteEllipse(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) → ellZKIf(step ∈ {3, 4}, -2, step ∈ {6, 7}, -3, step ∈ {9, 10}, -1, 1) → numberStone1If(step ∈ {3, 4}, 3, step ∈ {6, 7}, -2, step ∈ {9, 10}, 4, -7) → numberStone2If(step ∈ {3, 4, 12, 13}, PointParkedStones(1), PointZKStones(1)) → PStone2Sequence(IsInRegion[AllPStones(k), RegionZK(1)], k, 1, Length[AllPStones]) → StoneInRegionSum(Sequence[If[StoneInRegion(k), AllNumbersStones(k), 0], k, 1, Length[AllNumbersStones]]) → actualTemperatureSequence(PointsThermoEnd(1) + (k * (0, Distance[PointsThermoEnd(1), PointsThermoEnd(2)] / (thermoEnd - thermoStart))), k, 0, thermoEnd - thermoStart, 1) → PointsThermoRemoveUndefined(Sequence[If[Mod[TemperatureList(k), thermoStepMark] ≟ 0, Segment[PointsThermo(k) + (((-segLengthThermo)) / 2, 0), PointsThermo(k) + (segLengthThermo / 2, 0)]], k, 1, Length[PointsThermo]]) → segMarkThermoRemoveUndefined(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]]) → CapThermoText(((("\textsf{\bold{\(" * If[actualTemperature > 0, "+", ""]) * actualTemperature) * "\)}}"), PointsThermo(IndexOf[actualTemperature, TemperatureList]) + ((-6 / 5 * segLengthThermo), 0.05), false, true, 0, 0) → CapActualTemperatureSequence(((dimStoneA * cos(k°)), (dimStoneB * sin(k°))), k, 0, 360, 5) → PointStoneText((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone1 > 0, "+", numberStone1 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone1)), (abs(numberStone1) * "")]) * "}}}"), PStone1 + (0, 0.05), false, true, 0, 0) → txtStone1Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone2 > 0, "+", numberStone2 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone2)), (abs(numberStone2) * "")]) * "}}}"), PStone2 + (0, 0.05), false, true, 0, 0) → txtStone2Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone3 > 0, "+", numberStone3 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone3)), (abs(numberStone3) * "")]) * "}}}"), PStone3 + (0, 0.05), false, true, 0, 0) → txtStone3Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone4 > 0, "+", numberStone4 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone4)), (abs(numberStone4) * "")]) * "}}}"), PStone4 + (0, 0.05), false, true, 0, 0) → txtStone4Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone5 > 0, "+", numberStone5 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone5)), (abs(numberStone5) * "")]) * "}}}"), PStone5 + (0, 0.05), false, true, 0, 0) → txtStone5Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone6 > 0, "+", numberStone6 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone6)), (abs(numberStone6) * "")]) * "}}}"), PStone6 + (0, 0.05), false, true, 0, 0) → txtStone6Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone7 > 0, "+", numberStone7 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone7)), (abs(numberStone7) * "")]) * "}}}"), PStone7 + (0, 0.05), false, true, 0, 0) → txtStone7Textfield(input041) → InputBox041Textfield(input071) → InputBox071Textfield(input101) → InputBox101Textfield(input131) → InputBox131SelectedIndex(dropdown041) → index041SelectedIndex(dropdown071) → index071SelectedIndex(dropdown101) → index101SelectedIndex(dropdown131) → index131Sequence(Sequence[PosTable + (Sum[ListSpalte, k], (-Sum[ListZeile, m])), k, 0, 2], m, 0, 5) → TablePosMatSequence(Sequence[PosTable1 + (Sum[ListSpalte, k], (-Sum[ListZeile, m])), k, 0, 2], m, 0, 1) → TablePosMat1Text((((("\textsf{\bold{" * If[actualTemperature > 0, "+", ""]) * "\(") * actualTemperature) * "\) °C}}"), PosDigitaleAnzeige + (0, 0.05), false, true, 0, 0) → txtDigitaleAnzeigeUnitOrthogonalVector(Segment[PointParkedStones(1), PointZKStones(1)]) → vBogenZK1UnitOrthogonalVector(Segment[PointZKStones(4), PointParkedStones(2)]) → vBogenZK2CircleArc(Midpoint[Vertex[randStoneParked1(1), 18], Vertex[randStoneZK1(1), 18]] + (0.5 * vBogenZK1), Vertex[randStoneParked1(1), 18], Vertex[randStoneZK1(1), 18]) → bogenZK1CircleArc(Midpoint[Vertex[randStoneZK2(1), 54], Vertex[randStoneParked2(1), 54]] + (0.5 * vBogenZK2), Vertex[randStoneZK2(1), 54], Vertex[randStoneParked2(1), 54]) → bogenZK2Segment(Point[bogenZK1, 0], Point[bogenZK1, 0] + (0.01 * UnitVector[Tangent[Point[bogenZK1, 0], bogenZK1]])) → arrowBogenParked1Segment(Point[bogenZK2, 1], Point[bogenZK2, 1] - (0.01 * UnitVector[Tangent[Point[bogenZK2, 1], bogenZK2]])) → arrowBogenParked2Segment(Point[bogenZK1, 1], Point[bogenZK1, 1] - (0.01 * UnitVector[Tangent[Point[bogenZK1, 1], bogenZK1]])) → arrowBogenZK1Segment(Point[bogenZK2, 0], Point[bogenZK2, 0] + (0.01 * UnitVector[Tangent[Point[bogenZK2, 0], bogenZK2]])) → arrowBogenZK2Segment(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)])) → arrowE011Segment(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)])) → arrowE012Segment(PosArrowAnimStart01, PosArrowAnimEnd01) → arrowAnim01Segment(PosArrowAnimStart02, PosArrowAnimEnd02) → arrowAnim02Segment(PosArrowStart1, PosArrowStart2) → arrowStartIf(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) → clickableBtnNextElement({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]) → txtRechenregelSequence(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) → txtFeedbackTableIf(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) → clickableBtnBackText((("\textsf{(\(-2\)) \(+\) (\(+3\)) = " * If[done1, "\(-2\) \(+\) 3 = \(+1\)", "?"]) * "\vphantom{g}}"), Midpoint[TablePosMat(2, 2), TablePosMat(3, 3)], false, true, 0, 0) → txtTableRechnung1Text((("\textsf{(\(-5\)) \(-\) (\(-2\)) = " * If[done2, "\(-5\) \(+\) 2 = \(-3\)", "?"]) * "\vphantom{g}}"), Midpoint[TablePosMat(3, 2), TablePosMat(4, 3)], false, true, 0, 0) → txtTableRechnung2Text((("\textsf{(\(+3\)) \(-\) (\(+4\)) = " * If[done3, "\(+3\) \(-\) 4 = \(-1\)", "?"]) * "\vphantom{g}}"), Midpoint[TablePosMat(4, 2), TablePosMat(5, 3)], false, true, 0, 0) → txtTableRechnung3Text((("\textsf{(\(+1\)) \(+\) (\(-7\)) = " * If[done4, "\(+1\) \(-\) 7 = \(-6\)", "?"]) * "\vphantom{g}}"), Midpoint[TablePosMat(5, 2), TablePosMat(6, 3)], false, true, 0, 0) → txtTableRechnung4Text((("\textsf{\((-2\)) \(+\) (\(+3\)) = " * If[done1, "\(-2\) \(+\) 3 = \(+1\)", "?"]) * "\vphantom{g}}"), Midpoint[TablePosMat1(1, 2), TablePosMat1(2, 3)], false, true, 0, 0) → txtTableRechnung03Text((("\textsf{(\(-5\)) \(-\) (\(-2\)) = " * If[done2, "\(-5\) \(+\) 2 = \(-3\)", "?"]) * "\vphantom{g}}"), Midpoint[TablePosMat1(1, 2), TablePosMat1(2, 3)], false, true, 0, 0) → txtTableRechnung06Text((("\textsf{(\(+3\)) \(-\) (\(+4\)) = " * If[done3, "\(+3\) \(-\) 4 = \(-1\)", "?"]) * "\vphantom{g}}"), Midpoint[TablePosMat1(1, 2), TablePosMat1(2, 3)], false, true, 0, 0) → txtTableRechnung09Text((("\textsf{(\(+1\)) \(+\) (\(-7\)) = " * If[done4, "\(+1\) \(-\) 7 = \(-6\)", "?"]) * "\vphantom{g}}"), Midpoint[TablePosMat1(1, 2), TablePosMat1(2, 3)], false, true, 0, 0) → txtTableRechnung12Textfield(input031) → InputBox031Textfield(input061) → InputBox061Textfield(input091) → InputBox091Textfield(input121) → InputBox121SelectedIndex(dropdown031) → index031SelectedIndex(dropdown061) → index061SelectedIndex(dropdown091) → index091SelectedIndex(dropdown121) → index121