Zauberkessel Challenge:用锥曲线与三角构造的几何答题

Zauberkessel Challenge:用锥曲线与三角构造的几何答题
几何画板及绘图内容加载中,请稍等……
2026-03-26 00:05
该范例通过交互式挑战展示一个“谜题—检验—反馈”的几何构造过程:在由圆弧、椭圆与多段几何元素组成的图形环境中,学生需要根据系统给出的随机题目输入答案并进行验证。核心数学概念包括:加减与整数(用于题目数据与选项)、锥曲线/椭圆几何、单位正交向量与圆弧构造、以及由三角/角度函数与参数化几何带来的点位确定。作图要点来自构造摘要:使用 If、Element、Sequence、Sum 进行题目生成与评分逻辑;用 Textfield、btnValidate、attemptCount、correctCount 等对象组织交互界面与反馈;用 Join、Text 构建题干与提示文本;用 Ellipse、CircleArc、Segment、Polygon 表示关键几何实体;用 UnitOrthogonalVector、Translate 实现方向与平移定位。适合中学高年级到大学预备课程的几何作图、解析几何与函

GeoGebra 命令及参数

  1. If(mixed, Shuffle[1…numberOfQuestions], 1…numberOfQuestions) → randomQuestions
  2. Element(randomQuestions, questionCount) → actualQuestion
  3. If(actualQuestion ∈ {1, 2, 3, 4, 5, 8, 9}, (10.5, 1.4), actualQuestion ∈ {7}, (0.5, 2.5), (10.5, 0)) → PosZK1
  4. Element({-8, 5, 1, -5, 6, 3, 2, 1, 7}, actualQuestion) → numberStone1
  5. Element({3, -3, 1, 7, 2, 6, -6, 5, -2}, actualQuestion) → numberStone2
  6. Element({1, -4, 1, -4, -7, -1, -7, -4, 8}, actualQuestion) → numberStone3
  7. Element({-6, 1, 1, -1, 1, -3, 3, 1, -6}, actualQuestion) → numberStone4
  8. Element({-1, -2, 1, 3, 4, -5, 1, -5, 1}, actualQuestion) → numberStone5
  9. Element({7, 1, 1, -2, -2, 2, 1, 5, 1}, actualQuestion) → numberStone6
  10. Element({1, 1, 1, 6, -3, 1, 1, 1, 1}, actualQuestion) → numberStone7
  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. If(0 < questionCount ≤ numberOfQuestions, Element[{correct01, correct02, correct03, correct04, correct05, correct06, correct07, correct08, correct09}, actualQuestion], false) → correct
  14. Element(randomQuestions, Mod[questionCount - 1, Length[randomQuestions]] + 1) → randomQuestion
  15. Textfield(input) → inputBox
  16. 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
  17. 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
  18. Sequence(Sequence[Corner[4] + (RasterPixMat * ((k * RasterStepXY), (m * RasterStepXY))), k, 0, RasterMaxX / RasterStepXY], m, 0, RasterMaxY / RasterStepXY) → RasterPunkte
  19. Textfield(input021) → InputBox021
  20. Textfield(input061) → InputBox061
  21. Text("\bold{✘ \vphantom{✘✓}}", Midpoint[Vertex[polyOption091(1), 2], Vertex[polyOption091(1), 3]], false, true, 1, 0) → txtFB091
  22. Text("\bold{✘ \vphantom{✘✓}}", Midpoint[Vertex[polyOption092(1), 2], Vertex[polyOption092(1), 3]], false, true, 1, 0) → txtFB092
  23. Text("\bold{✓ \vphantom{✘✓}}", Midpoint[Vertex[polyOption093(1), 2], Vertex[polyOption093(1), 3]], false, true, 1, 0) → txtFB093
  24. 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
  25. Sequence(((dimStoneA * cos(k°)), (dimStoneB * sin(k°))), k, 0, 360, 5) → PointStone
  26. 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
  27. 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
  28. 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
  29. 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
  30. 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
  31. 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
  32. 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
  33. UnitOrthogonalVector(Segment[PointParkedStones(1), PointZKStones(1)]) → vBogenZK1
  34. UnitOrthogonalVector(Segment[PointZKStones(4), PointParkedStones(2)]) → vBogenZK2
  35. CircleArc(Midpoint[Vertex[randStoneParked1(1), 18], Vertex[randStoneZK1(1), 18]] + (0.5 * vBogenZK1), Vertex[randStoneParked1(1), 18], Vertex[randStoneZK1(1), 18]) → bogenZK1
  36. CircleArc(Midpoint[Vertex[randStoneZK2(1), 54], Vertex[randStoneParked2(1), 54]] + (0.5 * vBogenZK2), Vertex[randStoneZK2(1), 54], Vertex[randStoneParked2(1), 54]) → bogenZK2
  37. Segment(Point[bogenZK1, 0], Point[bogenZK1, 0] + (0.01 * UnitVector[Tangent[Point[bogenZK1, 0], bogenZK1]])) → arrowBogenParked1
  38. Segment(Point[bogenZK2, 1], Point[bogenZK2, 1] - (0.01 * UnitVector[Tangent[Point[bogenZK2, 1], bogenZK2]])) → arrowBogenParked2
  39. Segment(Point[bogenZK1, 1], Point[bogenZK1, 1] - (0.01 * UnitVector[Tangent[Point[bogenZK1, 1], bogenZK1]])) → arrowBogenZK1
  40. Segment(Point[bogenZK2, 0], Point[bogenZK2, 0] + (0.01 * UnitVector[Tangent[Point[bogenZK2, 0], bogenZK2]])) → arrowBogenZK2
  41. Join({PointZKStones, PointParkedStones, Reverse[PointParkedStonesAlt]}) → AllPointPosition
  42. If(actualQuestion ∈ {}, {false, false, false, false, false, false, false}, {true, true, true, true, true, true, true}) → fixedStones
  43. Ellipse(Pos062 + ((-sqrt(dimA06^(2) - dimB06^(2))), 0), Pos062 + (sqrt(dimA06^(2) - dimB06^(2)), 0), dimA06) → ell062
  44. Join({Midpoint[PosZK311, PosZK312] + (dimZK03 * (-0.015, 0.56)) + (dimZK03 / dimZK * (0, -0.25)) + (dimZK03 / dimZK * {(1.25, 0.25), (-1.25, -0.25), (0, 0), (0.75, -1), (-0.75, 1), (-0.75, -1.25), (0.75, 1)}), PosZK312 + (dimZK03 / dimZK * {(0.75, 2), (0.25, 0.75)})}) → Points031
  45. Ellipse(Midpoint[PointsAZK31(1), PointsAZK31(2)] + (sqrt(Distance[PointsAZK31(2), Midpoint[PointsAZK31(1), PointsAZK31(2)]]^(2) - Distance[PointsBZK31(2), Midpoint[PointsAZK31(1), PointsAZK31(2)]]^(2)), 0), Midpoint[PointsAZK31(1), PointsAZK31(2)] + ((-sqrt(Distance[PointsAZK31(2), Midpoint[PointsAZK31(1), PointsAZK31(2)]]^(2) - Distance[PointsBZK31(2), Midpoint[PointsAZK31(1), PointsAZK31(2)]]^(2))), 0), Distance[PointsAZK31(1), PointsAZK31(2)] / 2) → ellZK31
  46. Translate(imgZK1, Vector[PosZK311, PosZK321]) → imgZK2
  47. Translate(imgZK2, Vector[PosZK311, PosZK321]) → imgZK3
  48. Translate(Points031, Vector[PosZK311, PosZK321]) → Points032
  49. Translate(Points032, Vector[PosZK311, PosZK321]) → Points033
  50. Translate(ellZK31, Vector[PosZK311, PosZK321]) → ellZK32
  51. Translate(ellZK32, Vector[PosZK311, PosZK321]) → ellZK33
  52. Translate(PosDigitaleAnzeige031, Vector[PosZK311, PosZK321]) → PosDigitaleAnzeige032
  53. Text("\textsf{\bold{\(-1\) °C}}", PosDigitaleAnzeige031 + (0, 0.05), false, true, 0, 0) → txtDigitaleAnzeige031
  54. Text("\textsf{\bold{\(-4\) °C}}", PosDigitaleAnzeige032 + (0, 0.05), false, true, 0, 0) → txtDigitaleAnzeige032
  55. Translate(PosDigitaleAnzeige032, Vector[PosZK311, PosZK321]) → PosDigitaleAnzeige033
  56. Text("\textsf{\bold{\(+4\) °C}}", PosDigitaleAnzeige033 + (0, 0.05), false, true, 0, 0) → txtDigitaleAnzeige033
  57. UnitOrthogonalVector(Segment[Points031(8), Points031(1)]) → vBogenZK311
  58. UnitOrthogonalVector(Segment[Points031(4), Points031(9)]) → vBogenZK312
  59. CircleArc(Midpoint[Vertex[randStoneParked311(1), 18], Vertex[randStoneZK311(1), 18]] + (0.5 * vBogenZK311), Vertex[randStoneParked311(1), 18], Vertex[randStoneZK311(1), 18]) → bogenZK311
  60. CircleArc(Midpoint[Vertex[randStoneZK312(1), 54], Vertex[randStoneParked312(1), 54]] + (0.5 * vBogenZK312), Vertex[randStoneZK312(1), 54], Vertex[randStoneParked312(1), 54]) → bogenZK312
  61. Segment(Point[bogenZK311, 0], Point[bogenZK311, 0] + (0.01 * UnitVector[Tangent[Point[bogenZK311, 0], bogenZK311]])) → arrowBogenParked311
  62. Segment(Point[bogenZK312, 1], Point[bogenZK312, 1] - (0.01 * UnitVector[Tangent[Point[bogenZK312, 1], bogenZK312]])) → arrowBogenParked312
  63. Segment(Point[bogenZK311, 1], Point[bogenZK311, 1] - (0.01 * UnitVector[Tangent[Point[bogenZK311, 1], bogenZK311]])) → arrowBogenZK311
  64. Segment(Point[bogenZK312, 0], Point[bogenZK312, 0] + (0.01 * UnitVector[Tangent[Point[bogenZK312, 0], bogenZK312]])) → arrowBogenZK312
  65. CircleArc(Midpoint[Vertex[randStoneParked321(1), 18], Vertex[randStoneZK321(1), 18]] + (0.5 * vBogenZK311), Vertex[randStoneParked321(1), 18], Vertex[randStoneZK321(1), 18]) → bogenZK321
  66. CircleArc(Midpoint[Vertex[randStoneZK322(1), 54], Vertex[randStoneParked322(1), 54]] + (0.5 * vBogenZK312), Vertex[randStoneZK322(1), 54], Vertex[randStoneParked322(1), 54]) → bogenZK322
  67. Segment(Point[bogenZK321, 0], Point[bogenZK321, 0] + (0.01 * UnitVector[Tangent[Point[bogenZK321, 0], bogenZK321]])) → arrowBogenParked321
  68. Segment(Point[bogenZK322, 1], Point[bogenZK322, 1] - (0.01 * UnitVector[Tangent[Point[bogenZK322, 1], bogenZK322]])) → arrowBogenParked322
  69. Segment(Point[bogenZK321, 1], Point[bogenZK321, 1] - (0.01 * UnitVector[Tangent[Point[bogenZK321, 1], bogenZK321]])) → arrowBogenZK321
  70. Segment(Point[bogenZK322, 0], Point[bogenZK322, 0] + (0.01 * UnitVector[Tangent[Point[bogenZK322, 0], bogenZK322]])) → arrowBogenZK322
  71. CircleArc(Midpoint[Vertex[randStoneParked331(1), 18], Vertex[randStoneZK331(1), 18]] + (0.5 * vBogenZK311), Vertex[randStoneParked331(1), 18], Vertex[randStoneZK331(1), 18]) → bogenZK331
  72. CircleArc(Midpoint[Vertex[randStoneZK332(1), 54], Vertex[randStoneParked332(1), 54]] + (0.5 * vBogenZK312), Vertex[randStoneZK332(1), 54], Vertex[randStoneParked332(1), 54]) → bogenZK332
  73. Segment(Point[bogenZK331, 0], Point[bogenZK331, 0] + (0.01 * UnitVector[Tangent[Point[bogenZK331, 0], bogenZK331]])) → arrowBogenParked331
  74. Segment(Point[bogenZK332, 1], Point[bogenZK332, 1] - (0.01 * UnitVector[Tangent[Point[bogenZK332, 1], bogenZK332]])) → arrowBogenParked332
  75. Segment(Point[bogenZK331, 1], Point[bogenZK331, 1] - (0.01 * UnitVector[Tangent[Point[bogenZK331, 1], bogenZK331]])) → arrowBogenZK331
  76. Segment(Point[bogenZK332, 0], Point[bogenZK332, 0] + (0.01 * UnitVector[Tangent[Point[bogenZK332, 0], bogenZK332]])) → arrowBogenZK332
  77. Polygon(Pos061 + PointStone) → ell061
  78. Text("\textsf{\bold{\textcolor{white}{\(-3\)}}}", Pos061 + (0, 0.05), false, true, 0, 0) → txtStone061
  79. If(actualQuestion ≟ 7, 0.42, 0.3) → stepAxis07
  80. Sequence(StartP071 + (k * (stepAxis07, 0)), k, 0, 30) → AxisPoints071
  81. Segment(StartP071 + ((-edgeAxis), 0), StartP071 + ((20 * stepAxis07) + edgeAxis, 0)) → axis071
  82. Segment(StartP072 + ((-edgeAxis), 0), StartP072 + ((20 * stepAxis07) + edgeAxis, 0)) → axis072
  83. Segment(StartP073 + ((-edgeAxis), 0), StartP073 + ((20 * stepAxis07) + edgeAxis, 0)) → axis073
  84. Sequence(StartP072 + (k * (stepAxis07, 0)), k, 0, 30) → AxisPoints072
  85. Sequence(StartP073 + (k * (stepAxis07, 0)), k, 0, 30) → AxisPoints073
  86. Segment(AxisPoints071(8) + (0, disSegAxis072 + 0.25), AxisPoints071(10) + (0, disSegAxis072 + 0.25)) → seg071
  87. Segment(AxisPoints072(10) + (0, disSegAxis072 + 0.25), AxisPoints072(18) + (0, disSegAxis072 + 0.25)) → seg072
  88. Segment(AxisPoints073(6) + (0, disSegAxis072 + 0.25), AxisPoints073(8) + (0, disSegAxis072 + 0.25)) → seg073
  89. Segment(StartP081 + ((-edgeAxis), 0), StartP081 + ((30 * stepAxis07) + edgeAxis, 0)) → axis081
  90. Sequence(StartP081 + (k * (stepAxis07, 0)), k, 0, 30) → AxisPoints081
  91. Sequence(Segment[AxisPoints081(k) + (0, (-If[Mod[k, 5] ≟ 1, disSegAxis072, disSegAxis071])), AxisPoints081(k) + (0, If[Mod[k, 5] ≟ 1, disSegAxis072, disSegAxis071])], k, 1, 31) → segAxis081
  92. Segment(AxisPoints081(13) + (0, disSegAxis072 + 0.25), AxisPoints081(18) + (0, disSegAxis072 + 0.25)) → seg081
  93. Text("\bold{✘ \vphantom{✘✓}}", Midpoint[Vertex[polyOption011(1), 2], Vertex[polyOption011(1), 3]] + (0, 0.15), false, true, 1, 0) → txtFB011
  94. Text("\bold{✓ \vphantom{✘✓}}", Midpoint[Vertex[polyOption012(1), 2], Vertex[polyOption012(1), 3]] + (0, 0.15), false, true, 1, 0) → txtFB012
  95. Text("\bold{✘ \vphantom{✘✓}}", Midpoint[Vertex[polyOption031(1), 2], Vertex[polyOption031(1), 1]] + (0, -0.5), false, true, 0, 0) → txtFB031
  96. Text("\bold{✓ \vphantom{✘✓}}", Midpoint[Vertex[polyOption032(1), 2], Vertex[polyOption032(1), 1]] + (0, -0.5), false, true, 0, 0) → txtFB032
  97. Text("\bold{✘ \vphantom{✘✓}}", Midpoint[Vertex[polyOption033(1), 2], Vertex[polyOption033(1), 1]] + (0, -0.5), false, true, 0, 0) → txtFB033
  98. Text((("\textsf{\bold{" * If[actualQuestion ∈ {1, 2, 3, 6, 7, 9} ∨ validate ∨ (¬ready) ∨ StoneInRegion ≟ {true, true, true, true, false, false, false}, (((If[actualTemperature > 0, "+", ""] * "\(") * actualTemperature) * "\)"), "? "]) * " °C}}"), PosDigitaleAnzeige + (0, 0.05), false, true, 0, 0) → txtDigitaleAnzeige
  99. Translate(imgZK, trans04) → imgZK04
  100. Polygon(Pos061Sol + PointStone) → ell06Sol
  101. Polygon(Pos062Sol + PointStone) → ell062Sol
  102. Text("\textsf{\bold{\textcolor{white}{\(-\)3}}}", Pos061Sol + (0, 0.05), false, true, 0, 0) → txtSol061
  103. Text("\textsf{\bold{\textcolor{white}{\(+\)3}}}", Pos062Sol + (0, 0.05), false, true, 0, 0) → txtSol062
  104. If(actualQuestion ≟ 1, option011 ∨ option012, actualQuestion ≟ 6, SelectedIndex[dropdown061] > 1 ∧ SelectedIndex[dropdown062] > 1, actualQuestion ≟ 4 ∨ actualQuestion ≟ 5, StoneInRegion ≠ {true, true, true, true, false, false, false}, actualQuestion ≟ 8, true ∈ selected08, true, actualQuestion ≟ 3, option031 ∨ option032 ∨ option033, actualQuestion ≟ 7, option071 ∨ option072 ∨ option073, actualQuestion ≟ 9, option091 ∨ option092 ∨ option093, actualQuestion ≟ 2, Defined[input021] ∧ SelectedIndex[dropdown021] > 1) → clickableBtnValidate
  105. CircleArc(Midpoint[PStone1 + (dimStoneA, 0), Pos081] - (0.5 * UnitOrthogonalVector[Segment[PStone1 + (dimStoneA, 0), Pos081]]), Pos081, PStone1 + (dimStoneA, 0)) → bogen081
  106. CircleArc(Midpoint[PStone2 + ((-dimStoneA), 0), Pos082] + (0.5 * UnitOrthogonalVector[Segment[PStone2 + ((-dimStoneA), 0), Pos082]]), PStone2 + ((-dimStoneA), 0), Pos082) → bogen082
  107. CircleArc(Midpoint[PStone3 + (0, (-dimStoneB)), Pos083] + (0.5 * UnitOrthogonalVector[Segment[PStone3 + (0, (-dimStoneB)), Pos083]]), PStone3 + (0, (-dimStoneB)), Pos083) → bogen083
  108. CircleArc(Midpoint[PStone4 + (0, (-dimStoneB)), Pos084] + (0.5 * UnitOrthogonalVector[Segment[PStone4 + (0, (-dimStoneB)), Pos084]]), PStone4 + (0, (-dimStoneB)), Pos084) → bogen084
  109. CircleArc(Midpoint[PStone6 + (0, dimStoneB), Pos086] - (0.75 * UnitOrthogonalVector[Segment[PStone6 + (0, dimStoneB), Pos086]]), Pos086, PStone6 + (0, dimStoneB)) → bogen086
  110. CircleArc(Midpoint[PStone5 + (0, dimStoneB), Pos085] - (0.75 * UnitOrthogonalVector[Segment[PStone5 + (0, dimStoneB), Pos085]]), Pos085, PStone5 + (0, dimStoneB)) → bogen085
  111. Segment(Pos081, Pos081 + (0.01 * UnitVector[Tangent[Pos081, bogen081]])) → arrow081
  112. Segment(Pos082, Pos082 + (0.01 * UnitVector[Tangent[Pos082, bogen082]])) → arrow082
  113. Segment(Pos083, Pos083 + (0.01 * UnitVector[Tangent[Pos083, bogen083]])) → arrow083
  114. Segment(Pos084, Pos084 + (0.01 * UnitVector[Tangent[Pos084, bogen084]])) → arrow084
  115. Segment(Pos085, Pos085 + (0.01 * UnitVector[Tangent[Pos085, bogen085]])) → arrow085
  116. Segment(Pos086, Pos086 + (0.01 * UnitVector[Tangent[Pos086, bogen086]])) → arrow086
  117. Sequence(Segment[AxisPoints071(k) + (0, (-If[Mod[k, 5] ≟ 1, disSegAxis072, disSegAxis071])), AxisPoints071(k) + (0, If[Mod[k, 5] ≟ 1, disSegAxis072, disSegAxis071])], k, 1, 21) → segAxis071
  118. Sequence(Segment[AxisPoints072(k) + (0, (-If[Mod[k, 5] ≟ 1, disSegAxis072, disSegAxis071])), AxisPoints072(k) + (0, If[Mod[k, 5] ≟ 1, disSegAxis072, disSegAxis071])], k, 1, 21) → segAxis072
  119. Sequence(Segment[AxisPoints073(k) + (0, (-If[Mod[k, 5] ≟ 1, disSegAxis072, disSegAxis071])), AxisPoints073(k) + (0, If[Mod[k, 5] ≟ 1, disSegAxis072, disSegAxis071])], k, 1, 21) → segAxis073
  120. Text("\textsf{\bold{\textcolor{white}{\(+5\)}}}", PosSol081 + (0, 0.05), false, true, 0, 0) → txtStoneSol081
  121. Text("\textsf{\bold{\textcolor{white}{\(-5\)}}}", PosSol082 + (0, 0.05), false, true, 0, 0) → txtStoneSol082
  122. Translate(AllPointPosition, trans04) → AllPointPositionSol04
  123. Translate(polyStone1, Vector[PStone1, AllPointPositionSol04(1)]) → polySol041
  124. Translate(polyStone2, Vector[PStone2, AllPointPositionSol04(2)]) → polySol042
  125. Translate(polyStone3, Vector[PStone3, AllPointPositionSol04(3)]) → polySol043
  126. Translate(polyStone4, Vector[PStone4, AllPointPositionSol04(4)]) → polySol044
  127. Translate(polyStone5, Vector[PStone5, AllPointPositionSol04(10)]) → polySol045
  128. Translate(polyStone6, Vector[PStone6, AllPointPositionSol04(11)]) → polySol046
  129. Translate(polyStone7, Vector[PStone7, AllPointPositionSol04(12)]) → polySol047
  130. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone1 > 0, "+", numberStone1 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone1)), (abs(numberStone1) * "")]) * "}}}"), AllPointPositionSol04(1) + (0, 0.05), false, true, 0, 0) → txtStoneSol041
  131. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone2 > 0, "+", numberStone2 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone2)), (abs(numberStone2) * "")]) * "}}}"), AllPointPositionSol04(2) + (0, 0.05), false, true, 0, 0) → txtStoneSol042
  132. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone3 > 0, "+", numberStone3 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone3)), (abs(numberStone3) * "")]) * "}}}"), AllPointPositionSol04(3) + (0, 0.05), false, true, 0, 0) → txtStoneSol043
  133. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone4 > 0, "+", numberStone4 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone4)), (abs(numberStone4) * "")]) * "}}}"), AllPointPositionSol04(4) + (0, 0.05), false, true, 0, 0) → txtStoneSol044
  134. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone5 > 0, "+", numberStone5 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone5)), (abs(numberStone5) * "")]) * "}}}"), AllPointPositionSol04(10) + (0, 0.05), false, true, 0, 0) → txtStoneSol045
  135. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone6 > 0, "+", numberStone6 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone6)), (abs(numberStone6) * "")]) * "}}}"), AllPointPositionSol04(11) + (0, 0.05), false, true, 0, 0) → txtStoneSol046
  136. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone7 > 0, "+", numberStone7 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone7)), (abs(numberStone7) * "")]) * "}}}"), AllPointPositionSol04(12) + (0, 0.05), false, true, 0, 0) → txtStoneSol047
  137. CircleArc(Midpoint[AllPointPositionSol04(1) + (0, dimStoneB), PosBogen041] + (2.75 * UnitOrthogonalVector[Segment[AllPointPositionSol04(1) + (0, dimStoneB), PosBogen041]]), AllPointPositionSol04(1) + (0, dimStoneB), PosBogen041) → bogen041
  138. CircleArc(Midpoint[AllPointPositionSol04(10) + (0, (-dimStoneB)), PosBogen042] + (2.75 * UnitOrthogonalVector[Segment[AllPointPositionSol04(10) + (0, (-dimStoneB)), PosBogen042]]), AllPointPositionSol04(10) + (0, (-dimStoneB)), PosBogen042) → bogen042
  139. Segment(PosBogen041, PosBogen041 + (0.01 * UnitVector[Tangent[PosBogen041, bogen041]])) → arrow041
  140. Segment(PosBogen042, PosBogen042 + (0.01 * UnitVector[Tangent[PosBogen042, bogen042]])) → arrow042
  141. CircleArc(Midpoint[AllPointPositionSol04(2) + (0, dimStoneB), PosBogen041] + (2.75 * UnitOrthogonalVector[Segment[AllPointPositionSol04(2) + (0, dimStoneB), PosBogen041]]), AllPointPositionSol04(2) + (0, dimStoneB), PosBogen041) → bogen051
  142. CircleArc(Midpoint[AllPointPositionSol04(11) + (0, (-dimStoneB)), PosBogen042] + (2.75 * UnitOrthogonalVector[Segment[AllPointPositionSol04(11) + (0, (-dimStoneB)), PosBogen042]]), AllPointPositionSol04(11) + (0, (-dimStoneB)), PosBogen042) → bogen052
  143. Segment(PosBogen041, PosBogen041 + (0.01 * UnitVector[Tangent[PosBogen041, bogen051]])) → arrow051
  144. Segment(PosBogen042, PosBogen042 + (0.01 * UnitVector[Tangent[PosBogen042, bogen052]])) → arrow052
  145. Translate(ellZK, trans04) → ellZK04
  146. Translate(randDigitaleAnzeige, trans04) → randDigitaleAnzeige04
  147. Text((("\textsf{\bold{" * If[actualQuestion ∈ {4}, "\(-\)3", "\(+2\)"]) * " °C}}"), PosDigitaleAnzeige + (0, 0.05) + trans04, false, true, 0, 0) → txtDigitaleAnzeige04
  148. If(randomQuestion ≟ 4, validate ∧ correct ∨ solutionShown04, randomQuestion ≟ 5, validate ∧ correct ∨ solutionShown05, true) → clickableBtnNew
  149. Segment(Corner[txtClickMe08, 1] + (-0.1, 0.35), Corner[txtClickMe08, 1] + (-0.75, 0.75)) → arrowClickMe081
  150. Segment(Corner[txtClickMe08, 4] + (1.2, 0), Corner[txtClickMe08, 1] + (1.2, 1.5)) → arrowClickMe082
  151. Segment(Corner[txtZiehMich, 1] + (1.2, 0), Corner[txtZiehMich, 1] + (1.2, 0) + (2, -0.5)) → arrowZiehMich042
  152. Segment(Corner[txtZiehMich, 1] + (1.05, 0), Corner[txtZiehMich, 1] + (1.2, -0.5)) → arrowZiehMich041