彩色直角三角形练习:用幂输入验证勾股定理(第2部分)
几何画板及绘图内容加载中,请稍等……
该范例用多组彩色直角三角形展示如何基于不同边的标注来表述并验证勾股定理。核心数学概念包括:直角三角形、勾股定理(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 命令及参数
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 绘图提示语参考
绘制多个彩色直角三角形,每个三角形的边长由随机数生成。首先随机选择三角形类型,然后根据类型生成三角形的三个顶点。接着计算并显示每个顶点的坐标,确保直角位于三角形的一个角上。最后,根据边长计算并显示每个边的平方值,验证勾股定理。每个三角形的颜色随机变化。
以上提示语为根据原始绘图命令整理而来,仅供参考。