Colorful Right Triangles Practice (Part 2): Verify the Pythagorean Theorem by En

Colorful Right Triangles Practice (Part 2): Verify the Pythagorean Theorem by En
Loading the math board and drawing, please wait…
2024-09-26 21:27
This GeoGebra example generates multiple colorful right triangles to demonstrate how to state and verify the Pythagorean theorem using different side labels. The key math ideas are right triangles, the Pythagorean theorem (a^2 + b^2 = c^2), and entering powers as algebraic expressions in an input field. Construction and interaction are driven by randomization and object control: a triangle type/selection is randomized using Sequence, Shuffle, RandomElement, and IndexOf; the triangle is formed with Polygon; questions and prompts are displayed using Textfield, Text, and UnicodeToText; learners input values involving powers, and feedback is handled via If, Defined, Remove, and RemoveUndefined. The geometry is built from Point and Angle, while Dilate helps manage scaled elements; internal counters track attempts and correctness (e.g., attemptCount, questionCount, correctCount). Suitable for grades 7–8, for interactive practice and formative assessment on formulating and applying the Pythagorean theorem.

GeoGebra Commands & Parameters

  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 Drawing Prompt Reference

Draw multiple colorful right triangles with side lengths generated randomly. First, randomly select a triangle type, then generate the three vertices of the triangle based on the type. Ensure the right angle is at one of the triangle's corners. Next, calculate and display the square of each side length to verify the Pythagorean theorem. The color of each triangle changes randomly.
The prompt above was compiled from the original drawing commands and is for reference only.