彩色直角三角形练习:用幂输入验证勾股定理(第2部分)

彩色直角三角形练习:用幂输入验证勾股定理(第2部分)
几何画板及绘图内容加载中,请稍等……
2024-09-26 21:27
该范例用多组彩色直角三角形展示如何基于不同边的标注来表述并验证勾股定理。核心数学概念包括:直角三角形、勾股定理(a^2+b^2=c^2 的关系)、以及将幂作为表达式输入的代数表示。作图与交互要点是:系统随机生成直角三角形的点与边(如通过 Sequence、Shuffle、RandomElement 与 IndexOf 实现题型与参数随机),再用 Polygon 连接成三角形;题目与输入框由 Textfield、Text 与 UnicodeToText 负责显示;通过 Textfield 让学习者输入涉及“幂”的计算结果,并用 If、Defined、Remove、RemoveUndefined 等逻辑与对象管理实现验证流程;生成/标注几何结构时使用 Point、Angle、Dilate,并维护若干计数与状态变量(如 attemptCount、questionCount、correctCount)。适合7—8年级用于巩固勾股定理的表述与计算练习,也可作为课堂互动测验或分层练习。

GeoGebra 命令及参数

  1. Sequence(Random[3, 3], i, 1, 100) → randomTypes, {3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}
  2. Element(randomTypes, Mod[questionCount, Length[randomTypes]] + 1) → actualRandomTyp
  3. Sequence(Rotate[possibleDreieckPointsStart, i°, possibleDreieckPointsCenter], i, 0, 360 - 1, 15) → possibleDreieckPoints
  4. Shuffle(1…Length[possibleDreieckPoints]) → randomDreieckNumbers, {10, 13, 2, 9, 7, 23, 19, 4, 22, 21, 12, 24, 14, 3, 11, 16, 8, 17, 6, 1, 18, 5, 15, 20}
  5. Element(randomDreieckNumbers, Mod[questionCount, Length[randomDreieckNumbers]] + 1) → actualRandomDreieckNumber
  6. Element(possibleDreieckPoints, actualRandomDreieckNumber) → dreieckA
  7. Element(possibleDreieckPoints, If[actualRandomDreieckNumber ≤ Length[randomDreieckNumbers] / 2, actualRandomDreieckNumber + Length[randomDreieckNumbers] / 2, actualRandomDreieckNumber - Length[randomDreieckNumbers] / 2]) → dreieckB
  8. IndexOf(dreieckA, possibleDreieckPoints) → numberPosA
  9. If(numberPosA ∈ (1…numberNachbarn), Join[{First[possibleDreieckPoints, numberPosA + numberNachbarn], Last[possibleDreieckPoints, (numberNachbarn * 2) + 1 - (numberPosA + numberNachbarn)]}], If[numberPosA ∈ (Length[possibleDreieckPoints]…(Length[possibleDreieckPoints] - numberNachbarn)), Join[{First[possibleDreieckPoints, (numberNachbarn * 2) + 1 - (Length[possibleDreieckPoints] - numberPosA + 1 + numberNachbarn)], Last[possibleDreieckPoints, Length[possibleDreieckPoints] - numberPosA + 1 + numberNachbarn]}], Take[possibleDreieckPoints, numberPosA - numberNachbarn, numberPosA + numberNachbarn]]) → nachbarnA
  10. IndexOf(dreieckB, possibleDreieckPoints) → numberPosB
  11. If(numberPosB ∈ (1…numberNachbarn), Join[{First[possibleDreieckPoints, numberPosB + numberNachbarn], Last[possibleDreieckPoints, (numberNachbarn * 2) + 1 - (numberPosB + numberNachbarn)]}], If[numberPosB ∈ (Length[possibleDreieckPoints]…(Length[possibleDreieckPoints] - numberNachbarn)), Join[{First[possibleDreieckPoints, (numberNachbarn * 2) + 1 - (Length[possibleDreieckPoints] - numberPosB + 1 + numberNachbarn)], Last[possibleDreieckPoints, Length[possibleDreieckPoints] - numberPosB + 1 + numberNachbarn]}], Take[possibleDreieckPoints, numberPosB - numberNachbarn, numberPosB + numberNachbarn]]) → nachbarnB
  12. If(numberPosB < numberPosA, Join[{First[possibleDreieckPoints, numberPosB], Last[possibleDreieckPoints, Length[possibleDreieckPoints] + 1 - numberPosA]}], Take[possibleDreieckPoints, numberPosA, numberPosB]) → nichtC
  13. RandomElement(possibleDreieckPoints \ Join[{nachbarnA, nachbarnB, nichtC}]) → dreieckC
  14. Polygon(dreieckA, dreieckB, dreieckC) → dreieck, dreieckc, dreiecka, dreieckb
  15. If(actualRandomTyp ≟ 1, resetPositionsAll, If[actualRandomTyp ≟ 2, Shuffle[resetPositionsAll], If[actualRandomTyp ≟ 3, {(0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0)}]]) → resetPositionsActual
  16. Sequence(If[resetPositionsActual(i) ≟ (0, 0), false, true], i, 1, Length[resetPositionsActual]) → showElements
  17. Textfield(input1) → inputBox1
  18. Textfield(input2) → inputBox2
  19. Remove(Shuffle[2…21], {10, 11, 12}) → randomLettersNumbers
  20. If(actualRandomTyp ≠ 3, Element[randomLettersNumbers, Mod[questionCount, Length[randomLettersNumbers]] + 1], If[Element[randomLettersNumbers, Mod[questionCount, Length[randomLettersNumbers]] + 1] ≥ 22, 2, Element[randomLettersNumbers, Mod[questionCount, Length[randomLettersNumbers]] + 1]]) → actualRandomLettersNumber
  21. Element(randomLetters, actualRandomLettersNumber + 0) → actualRandomLetter1
  22. Element(randomLetters, actualRandomLettersNumber + 1) → actualRandomLetter2
  23. Element(randomLetters, actualRandomLettersNumber + 2) → actualRandomLetter3
  24. UnicodeToText(TextToUnicode[inputText] \ {32}) → inputTextTrim
  25. Sequence(Random[1, 10], i, 1, 10) → randomNumbers, {2, 7, 10, 9, 5, 2, 2, 8, 2, 6}
  26. Element(randomNumbers, Mod[questionCount, Length[randomNumbers]] + 1) → randomNumber
  27. Defined(IndexOf["sqrt", "" + inputTextTrim]) → isTypicalErrorTyp3Wurzel
  28. RemoveUndefined(Sequence[If[showElements(i), boxEndAll(i)], i, 1, Length[boxEndAll]]) → boxEndActualType
  29. Point(Semicircle[dreieckStart1A, dreieckStart1B]) → dreieckStart1C
  30. Text(actualRandomLetter3 + "^2\vphantom{g_g}", Midpoint[box6Start, box6Start + (boxSize, boxSize)], true, true, 0, 0) → txtLetter3Quadrat
  31. Text(actualRandomLetter2 + "^2\vphantom{g_g}", Midpoint[box5Start, box5Start + (boxSize, boxSize)], true, true, 0, 0) → txtLetter2Quadrat
  32. Text(actualRandomLetter1 + "^2\vphantom{g_g}", Midpoint[box4Start, box4Start + (boxSize, boxSize)], true, true, 0, 0) → txtLetter1Quadrat
  33. Angle(dreieckA, dreieckC, dreieckB) → rechterWinkel
  34. Dilate(quadratA, solutionTransformationFaktor, solutionTransformationPoint) → quadratASolution
  35. Dilate(quadratB, solutionTransformationFaktor, solutionTransformationPoint) → quadratBSolution
  36. Dilate(quadratC, solutionTransformationFaktor, solutionTransformationPoint) → quadratCSolution
  37. Shuffle(1…Length[randomColors]) → randomColorsNumber, {3, 2, 1, 4}
  38. Element(randomColors, Element[randomColorsNumber, Mod[questionCount, Length[randomColorsNumber]] + 1]) → actualRandomColor
  39. Element(randomColorsTransparent, Element[randomColorsNumber, Mod[questionCount, Length[randomColorsNumber]] + 1]) → actualRandomColorTransparent
  40. Point(Semicircle[dreieckStart2A, dreieckStart2B]) → dreieckStart2C
  41. Point(Semicircle[dreieckStart3A, dreieckStart3B]) → dreieckStart3C
  42. Point(Semicircle[dreieckStart4A, dreieckStart4B]) → dreieckStart4C
  43. Point(Semicircle[dreieckStart5A, dreieckStart5B]) → dreieckStart5C
  44. Text(actualRandomLetter1 + "^2\vphantom{g_g}", Centroid[quadratA(1)], true, true, 0, 0) → txtBeschriftungLetter1Quadrat
  45. Text(actualRandomLetter2 + "^2\vphantom{g_g}", Centroid[quadratB(1)], true, true, 0, 0) → txtBeschriftungLetter2Quadrat
  46. Text(actualRandomLetter3 + "^2\vphantom{g_g}", Centroid[quadratC(1)], true, true, 0, 0) → txtBeschriftungLetter3Quadrat
  47. Text(actualRandomLetter1 + "\vphantom{gh_g}", Midpoint[dreiecka], true, true, 0, 0) → txtBeschriftungLetter1
  48. Text(actualRandomLetter2 + "\vphantom{gh_g}", Midpoint[dreieckb], true, true, 0, 0) → txtBeschriftungLetter2
  49. Text(actualRandomLetter3 + "\vphantom{gh_g}", Midpoint[dreieckc], true, true, 0, 0) → txtBeschriftungLetter3
  50. Text(actualRandomLetter1 + "\vphantom{gh_g}", Midpoint[box1Start, box1Start + (boxSize, boxSize)], true, true, 0, 0) → txtLetter1
  51. Text(actualRandomLetter2 + "\vphantom{gh_g}", Midpoint[box2Start, box2Start + (boxSize, boxSize)], true, true, 0, 0) → txtLetter2
  52. Text(actualRandomLetter3 + "\vphantom{gh_g}", Midpoint[box3Start, box3Start + (boxSize, boxSize)], true, true, 0, 0) → txtLetter3
  53. Angle((12.3, 2.7 - 0.5), (10.3, 2.7 - 0.5), (10.3, 3.7 - 0.5)) → dreieckHintTyp1Winkel
  54. Angle((13.5, 2.4), (11.5, 2.4), (11.5, 3.6)) → dreieckHintTyp2Winkel
  55. Angle((12.3, 2.7 - 0.5), (10.3, 2.7 - 0.5), (10.3, 3.7 - 0.5)) → dreieckHintTyp3Winkel
  56. Angle(Dilate[dreieckA, solutionTransformationFaktor, solutionTransformationPoint], Dilate[dreieckC, solutionTransformationFaktor, solutionTransformationPoint], Dilate[dreieckB, solutionTransformationFaktor, solutionTransformationPoint]) → rechterWinkelSolution

AI 绘图提示语参考

绘制多个彩色直角三角形,每个三角形的边长由随机数生成。首先随机选择三角形类型,然后根据类型生成三角形的三个顶点。接着计算并显示每个顶点的坐标,确保直角位于三角形的一个角上。最后,根据边长计算并显示每个边的平方值,验证勾股定理。每个三角形的颜色随机变化。
以上提示语为根据原始绘图命令整理而来,仅供参考。