Colorful Right Triangles Practice (Part 2): Verify the Pythagorean Theorem by En
Loading the math board and drawing, please wait…
In collections
Satz des Pythagoras - Einführung
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
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}Element(randomTypes, Mod[questionCount, Length[randomTypes]] + 1) → actualRandomTypSequence(Rotate[possibleDreieckPointsStart, i°, possibleDreieckPointsCenter], i, 0, 360 - 1, 15) → possibleDreieckPointsShuffle(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}Element(randomDreieckNumbers, Mod[questionCount, Length[randomDreieckNumbers]] + 1) → actualRandomDreieckNumberElement(possibleDreieckPoints, actualRandomDreieckNumber) → dreieckAElement(possibleDreieckPoints, If[actualRandomDreieckNumber ≤ Length[randomDreieckNumbers] / 2, actualRandomDreieckNumber + Length[randomDreieckNumbers] / 2, actualRandomDreieckNumber - Length[randomDreieckNumbers] / 2]) → dreieckBIndexOf(dreieckA, possibleDreieckPoints) → numberPosAIf(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]]) → nachbarnAIndexOf(dreieckB, possibleDreieckPoints) → numberPosBIf(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]]) → nachbarnBIf(numberPosB < numberPosA, Join[{First[possibleDreieckPoints, numberPosB], Last[possibleDreieckPoints, Length[possibleDreieckPoints] + 1 - numberPosA]}], Take[possibleDreieckPoints, numberPosA, numberPosB]) → nichtCRandomElement(possibleDreieckPoints \ Join[{nachbarnA, nachbarnB, nichtC}]) → dreieckCPolygon(dreieckA, dreieckB, dreieckC) → dreieck, dreieckc, dreiecka, dreieckbIf(actualRandomTyp ≟ 1, resetPositionsAll, If[actualRandomTyp ≟ 2, Shuffle[resetPositionsAll], If[actualRandomTyp ≟ 3, {(0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0)}]]) → resetPositionsActualSequence(If[resetPositionsActual(i) ≟ (0, 0), false, true], i, 1, Length[resetPositionsActual]) → showElementsTextfield(input1) → inputBox1Textfield(input2) → inputBox2Remove(Shuffle[2…21], {10, 11, 12}) → randomLettersNumbersIf(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]]) → actualRandomLettersNumberElement(randomLetters, actualRandomLettersNumber + 0) → actualRandomLetter1Element(randomLetters, actualRandomLettersNumber + 1) → actualRandomLetter2Element(randomLetters, actualRandomLettersNumber + 2) → actualRandomLetter3UnicodeToText(TextToUnicode[inputText] \ {32}) → inputTextTrimSequence(Random[1, 10], i, 1, 10) → randomNumbers, {2, 7, 10, 9, 5, 2, 2, 8, 2, 6}Element(randomNumbers, Mod[questionCount, Length[randomNumbers]] + 1) → randomNumberDefined(IndexOf["sqrt", "" + inputTextTrim]) → isTypicalErrorTyp3WurzelRemoveUndefined(Sequence[If[showElements(i), boxEndAll(i)], i, 1, Length[boxEndAll]]) → boxEndActualTypePoint(Semicircle[dreieckStart1A, dreieckStart1B]) → dreieckStart1CText(actualRandomLetter3 + "^2\vphantom{g_g}", Midpoint[box6Start, box6Start + (boxSize, boxSize)], true, true, 0, 0) → txtLetter3QuadratText(actualRandomLetter2 + "^2\vphantom{g_g}", Midpoint[box5Start, box5Start + (boxSize, boxSize)], true, true, 0, 0) → txtLetter2QuadratText(actualRandomLetter1 + "^2\vphantom{g_g}", Midpoint[box4Start, box4Start + (boxSize, boxSize)], true, true, 0, 0) → txtLetter1QuadratAngle(dreieckA, dreieckC, dreieckB) → rechterWinkelDilate(quadratA, solutionTransformationFaktor, solutionTransformationPoint) → quadratASolutionDilate(quadratB, solutionTransformationFaktor, solutionTransformationPoint) → quadratBSolutionDilate(quadratC, solutionTransformationFaktor, solutionTransformationPoint) → quadratCSolutionShuffle(1…Length[randomColors]) → randomColorsNumber, {3, 2, 1, 4}Element(randomColors, Element[randomColorsNumber, Mod[questionCount, Length[randomColorsNumber]] + 1]) → actualRandomColorElement(randomColorsTransparent, Element[randomColorsNumber, Mod[questionCount, Length[randomColorsNumber]] + 1]) → actualRandomColorTransparentPoint(Semicircle[dreieckStart2A, dreieckStart2B]) → dreieckStart2CPoint(Semicircle[dreieckStart3A, dreieckStart3B]) → dreieckStart3CPoint(Semicircle[dreieckStart4A, dreieckStart4B]) → dreieckStart4CPoint(Semicircle[dreieckStart5A, dreieckStart5B]) → dreieckStart5CText(actualRandomLetter1 + "^2\vphantom{g_g}", Centroid[quadratA(1)], true, true, 0, 0) → txtBeschriftungLetter1QuadratText(actualRandomLetter2 + "^2\vphantom{g_g}", Centroid[quadratB(1)], true, true, 0, 0) → txtBeschriftungLetter2QuadratText(actualRandomLetter3 + "^2\vphantom{g_g}", Centroid[quadratC(1)], true, true, 0, 0) → txtBeschriftungLetter3QuadratText(actualRandomLetter1 + "\vphantom{gh_g}", Midpoint[dreiecka], true, true, 0, 0) → txtBeschriftungLetter1Text(actualRandomLetter2 + "\vphantom{gh_g}", Midpoint[dreieckb], true, true, 0, 0) → txtBeschriftungLetter2Text(actualRandomLetter3 + "\vphantom{gh_g}", Midpoint[dreieckc], true, true, 0, 0) → txtBeschriftungLetter3Text(actualRandomLetter1 + "\vphantom{gh_g}", Midpoint[box1Start, box1Start + (boxSize, boxSize)], true, true, 0, 0) → txtLetter1Text(actualRandomLetter2 + "\vphantom{gh_g}", Midpoint[box2Start, box2Start + (boxSize, boxSize)], true, true, 0, 0) → txtLetter2Text(actualRandomLetter3 + "\vphantom{gh_g}", Midpoint[box3Start, box3Start + (boxSize, boxSize)], true, true, 0, 0) → txtLetter3Angle((12.3, 2.7 - 0.5), (10.3, 2.7 - 0.5), (10.3, 3.7 - 0.5)) → dreieckHintTyp1WinkelAngle((13.5, 2.4), (11.5, 2.4), (11.5, 3.6)) → dreieckHintTyp2WinkelAngle((12.3, 2.7 - 0.5), (10.3, 2.7 - 0.5), (10.3, 3.7 - 0.5)) → dreieckHintTyp3WinkelAngle(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.