Judging Similar Triangles

Judging Similar Triangles
Loading the math board and drawing, please wait…
2023-07-26 01:17
This example uses the properties of similar triangles to help students determine if two given triangles are similar. It involves constructing shapes using GeoGebra commands such as RandomUniform and Polygon. Suitable for 6-8 grade students to learn about similar triangles and their corresponding parts.

GeoGebra Commands & Parameters

  1. RandomUniform(0, 0.99, 200) → allRandoms, {0.3438178205657234, 0.746020028279177, 0.12418450827442479, 0.5194510824823372, 0.6307089976456115, 0.3435450845292223, 0.21140922462104966, 0.31950607565693934, 0.144390082740804, 0.5556418212358933, 0.9817581916738138, 0.38845414637544523, 0.2696703282905974, 0.11330937267554143, 0.5947023701482836, 0.9467318487110481, 0.8162014088846398, 0.15705710239777193, 0.6222293370830434, 0.6737678085489628, 0.915648602966501, 0.07889247316150517, 0.2623403833506792, 0.5586671898616962, 0.9214464814698087, 0.17176091817253458, 0.561827037854188, 0.9899733087005463, 0.4890280734650017, 0.4608867999811926, 0.7053318767571093, 0.9036575357481326, 0.20475838890318154, 0.35235300489714083, 0.18600992465259825, 0.6860965564069228, 0.365582635113442, 0.21608369141592124, 0.2398541278045835, 0.9623400826916634, 0.28861593576404654, 0.5531574027725052, 0.5409347294960757, 0.15945583317383255, 0.20055595494711373, 0.841079677352228, 0.9384247471356065, 0.07015695590641756, 0.270891512240603, 0.6852825106214414, 0.39834473648101026, 0.8532759802494462, 0.48040950435699065, 0.5306944415162658, 0.6434579778995526, 0.03494335902114193, 0.06746925480940026, 0.7737385631888734, 0.9636826198157076, 0.16756119867575764, 0.02891807520393452, 0.7225671745207572, 0.41676040143707, 0.6228331789060644, 0.8303628355822998, 0.5017298261865297, 0.20473255702506485, 0.5302186802533977, 0.691792553856379, 0.7767988139247586, 0.6060205333715807, 0.8532238311358723, 0.9292630475539465, 0.8447385424336826, 0.5955961695793476, 0.6429254540569901, 0.9815095247664432, 0.34700728763863914, 0.5368472846409067, 0.9710428284589221, 0.09194450104610194, 0.744518197210916, 0.8583069944093554, 0.5237302762445277, 0.31152764769119934, 0.5366626889167715, 0.2564115870912179, 0.2120582337835406, 0.78646139942781, 0.8306127157422232, 0.9418882229625982, 0.7358829846782665, 0.056570048250682965, 0.13207008198024436, 0.032246431081104185, 0.5744750006066718, 0.1355617757924178, 0.7045193158199864, 0.22615828586950096, 0.19988350752828063, 0.793152968348434, 0.28086663785377625, 0.4872593270510439, 0.3275596058061987, 0.5512501660464969, 0.3091119014029072, 0.8650892042761275, 0.20324265970925706, 0.27203989401793305, 0.5424005265443741, 0.55951247538645, 0.8355350146025676, 0.20492824023711087, 0.3134422407565783, 0.7120221015105703, 0.6899468351848521, 0.8818010605452083, 0.1738586708300286, 0.622824885187883, 0.032488316226371786, 0.9260431241620045, 0.6505361911465802, 0.11654471500267825, 0.8991189281442069, 0.9601580171236863, 0.9435108394185129, 0.531751556626891, 0.5815329004478003, 0.08967313224318, 0.5533020882605233, 0.6003356930562277, 0.8298677164782158, 0.987292907481096, 0.0899365577782215, 0.4219938863642446, 0.6089678749322758, 0.6209805183151662, 0.7111684664799424, 0.39678012546124813, 0.2568174873545355, 0.50280222987132, 0.9036029413674709, 0.4647966098630453, 0.4916763944241659, 0.23196098743666693, 0.4975684420846379, 0.006661173682431569, 0.18831076528528665, 0.44547443045193963, 0.344659863179527, 0.9713853146802045, 0.023505387816723754, 0.45341970077016847, 0.29588769685205024, 0.47973249302180204, 0.026775649571667344, 0.12257170565457133, 0.47832015464566746, 0.5309998016883974, 0.13386881880285426, 0.04260333223632247, 0.3889934457667841, 0.149475951063911, 0.768250392861111, 0.042794902876029925, 0.6666917017541041, 0.013577497961709085, 0.8093166194893464, 0.9544179753723564, 0.004961687730535336, 0.7458496372208019, 0.07555729565897118, 0.3146116959433998, 0.9634288625123097, 0.715642087635954, 0.9763115285581402, 0.8616626139988997, 0.359119466516881, 0.3983304242745412, 0.9471180985897983, 0.39912775817749896, 0.875070163499545, 0.025451394827170345, 0.41095592172474515, 0.9072076527054083, 0.9300198612974467, 0.7890563348971759, 0.510902836609072, 0.3141802317549148, 0.6704297827739512, 0.11096006109907808, 0.028911065231398844, 0.19854843466474922, 0.23446658888148414, 0.523372760139748, 0.9605048164053139, 0.6638335628686153, 0.7869094744619392, 0.8316508524089884, 0.12625063671461306}
  2. Take(allRandoms, randIndex, randIndex + numRandoms - 1) → currentRandomSeeds
  3. If(randomNum1 > 1, currentRandomSeeds(2), 0.25 + (currentRandomSeeds(2) * 0.75)) → rand2Odds
  4. If(randomOrder ≟ 1, (2.5, 0), (18, 0)) → PointAStart
  5. Polygon({(25.5, 0), (25.5, 6), (18, 6), (18, 0)}) → problemRegion2
  6. Midpoint(Vertex[problemRegion2, 1], Vertex[problemRegion2, 3]) → MidBox2
  7. Polygon({(3, 0), (3, 6), (10.5, 6), (10.5, 0)}) → problemRegion1
  8. Centroid(problemRegion1) → MidBox1
  9. Element(randomScales, 1 + floor((currentRandomSeeds(9) * 5))) → randomScale
  10. Element(sidesN, randomNum3) → startSidesN
  11. Circle(PointAStart, randomSide2N) → side2CircleN
  12. Point(Circle[PointAStart, randomSide1N]) → PointBStartN
  13. Circle(PointBStartN, randomSide3N) → side3CircleN
  14. Max(Zip[y(k), k, PointCChoicesN]) → PointCMaxYN
  15. KeepIf(y(k) ≟ PointCMaxYN, k, PointCChoicesN) → PointCTopPointN
  16. VertHorCenter(PointAStart, PointBStartN, PointCStartN) → MidABCStartN
  17. Vector(MidABCStartN, If[randomOrder ≟ 1, MidBox1, MidBox2]) → translateABCVectorN
  18. Translate({PointAStart, PointBStartN, PointCStartN}, translateABCVectorN) → translatedABCN
  19. Centroid(Polygon[translatedABCN]) → MidABCTranslatedN
  20. Rotate(translatedABCN, randomRotationABC°, MidABCTranslatedN) → randomPointsABCN
  21. Element(sides, randomNum3) → startSides
  22. Point(Circle[PointAStart, randomSide1]) → PointBStart
  23. Circle(PointAStart, randomSide2) → side2Circle
  24. Circle(PointBStart, randomSide3) → side3Circle
  25. Max(Zip[y(k), k, PointCChoices]) → PointCMaxY
  26. KeepIf(y(k) ≟ PointCMaxY, k, PointCChoices) → PointCTopPoint
  27. VertHorCenter(PointAStart, PointBStart, PointCStart) → MidABCStart
  28. Vector(MidABCStart, If[randomOrder ≟ 1, MidBox1, MidBox2]) → translateABCVector
  29. Translate(PointCStart, translateABCVector) → translatedPointC
  30. Translate(PointBStart, translateABCVector) → translatedPointB
  31. Translate(PointAStart, translateABCVector) → translatedPointA
  32. Centroid(Polygon[{translatedPointA, translatedPointB, translatedPointC}]) → MidABCTranslated
  33. Rotate(translatedPointC, randomRotationABC°, MidABCTranslated) → randomPointC
  34. Rotate(translatedPointB, randomRotationABC°, MidABCTranslated) → randomPointB
  35. Rotate(translatedPointA, randomRotationABC°, MidABCTranslated) → randomPointA
  36. Centroid(Polygon[If[randomNum2 ≟ 1, {randomPointA, randomPointB, randomPointC}, randomPointsABCN]]) → MidABC
  37. Dilate(If[randomNum2 ≟ 1, randomPointA, randomPointsABCN(1)], randomScale, MidABC) → dilatedPointD
  38. Dilate(If[randomNum2 ≟ 1, randomPointC, randomPointsABCN(3)], randomScale, MidABC) → dilatedPointF
  39. Dilate(If[randomNum2 ≟ 1, randomPointB, randomPointsABCN(2)], randomScale, MidABC) → dilatedPointE
  40. Translate(dilatedPointD, translationVector) → translatedPointD
  41. Translate(dilatedPointF, translationVector) → translatedPointF
  42. Translate(dilatedPointE, translationVector) → translatedPointE
  43. Rotate(translatedPointF, randomRotation°, MidTranslated) → rotatedTriangleF
  44. Rotate(translatedPointE, randomRotation°, MidTranslated) → rotatedTriangleE
  45. Rotate(translatedPointD, randomRotation°, MidTranslated) → rotatedTriangleD
  46. Min({x(rotatedTriangleD), x(rotatedTriangleE), x(rotatedTriangleF)}) → xMinRotated
  47. Max({y(rotatedTriangleD), y(rotatedTriangleE), y(rotatedTriangleF)}) → yMaxRotated
  48. Angle(randomPointC, randomPointB, randomPointA) → angle2Q
  49. Angle(randomPointB, randomPointA, randomPointC) → angle1Q
  50. Polygon(randomPointA, randomPointB, randomPointC) → questionTriangle, sideABT1, sideBCT1, sideCAT1
  51. If(yMaxRotated > yMaxT, Vector[If[xMinRotated < 0, Vector[(0 - xMinRotated, yMaxT - yMaxRotated)], Vector[(0, yMaxT - yMaxRotated)]]], xMinRotated < 0, Vector[(0 - xMinRotated, 0)], Vector[(0, 0)]) → translationCorrection
  52. Translate(rotatedTriangleE, translationCorrection) → answerTriangleE
  53. Translate(rotatedTriangleD, translationCorrection) → answerTriangleD
  54. Translate(rotatedTriangleF, translationCorrection) → answerTriangleF
  55. Angle(answerTriangleF, answerTriangleE, answerTriangleD) → angle2A
  56. Angle(answerTriangleE, answerTriangleD, answerTriangleF) → angle1A
  57. Polygon(answerTriangleD, answerTriangleE, answerTriangleF) → answerTriangle, answerTriangleDE, answerTriangleEF, answerTriangleFD
  58. Denominator((randomMultiplierStart * randomScale)) → randomDenom
  59. closestFraction(sideDE, denominators) → sideDEImproper
  60. closestFraction(sideEFAnswer, denominators) → sideEFAnswerImproper
  61. closestFraction(sideFDAnswer, denominators) → sideFDAnswerImproper
  62. closestFraction(sideBC, denominators) → sideBCImproper
  63. closestFraction(sideCA, denominators) → sideCAImproper
  64. closestFraction(sideAB, denominators) → sideABImproper
  65. Zip("$\text{" + (n) + " }$", n, textOptions) → textDropDown
  66. Zip(answerTriangleE + (n, 0), n, {1, 2, 3, 4, 5, 6}) → PointStartsE
  67. Zip(answerTriangleD + (n, 0), n, {1, 2, 3, 4, 5, 6}) → PointStartsD
  68. Max(abs(y(Corner[textSideDE, 1]) - y(Corner[textSideDE, 3])), 1.4) → hDE
  69. Max(2, abs(x(Corner[textSideDE, 1]) - x(Corner[textSideDE, 3]))) → wDE
  70. Polygon({(19, -6), (19, 2), (28.5, 2), (28.5, -6)}) → solutionRegion
  71. Midpoint(Vertex[solutionRegion, 1], Vertex[solutionRegion, 3]) → MidBoxSolution
  72. Translate(answerTriangleD, Vector[MidDEFFinal, MidBoxSolution]) → NewAnswerD
  73. Translate(answerTriangleE, Vector[MidDEFFinal, MidBoxSolution]) → NewAnswerE
  74. Translate(answerTriangleF, Vector[MidDEFFinal, MidBoxSolution]) → NewAnswerF
  75. If(solDiff(1) > 0 ∨ solDiff(2) > 0, Min[solBoxWdthHt / (solBoxWdthHt + solDiff)], 1) → numSolScale
  76. Dilate(NewAnswerF, numSolScale, MidBoxSolution) → NewAnswerF'
  77. Dilate(NewAnswerE, numSolScale, MidBoxSolution) → NewAnswerE'
  78. Dilate(NewAnswerD, numSolScale, MidBoxSolution) → NewAnswerD'
  79. Distance(randomPointA, randomPointB) → bigAB
  80. Distance(randomPointA, randomPointC) → bigCA
  81. Distance(randomPointC, randomPointB) → bigBC
  82. closestFraction(sideFDAnswer - sideFDAnswerWhole, denominators) → sideFDAnswerFrac
  83. Max(abs(y(Corner[textSideFDAnswer, 1]) - y(Corner[textSideFDAnswer, 3])), 1.4) → hFD
  84. Max(2, abs(x(Corner[textSideFDAnswer, 1]) - x(Corner[textSideFDAnswer, 3]))) → wFD
  85. closestFraction(sideEFAnswer - sideEFAnswerWhole, denominators) → sideEFAnswerFrac
  86. Max(abs(y(Corner[textSideEFAnswer, 1]) - y(Corner[textSideEFAnswer, 3])), 1.4) → hEF
  87. Max(2, abs(x(Corner[textSideEFAnswer, 1]) - x(Corner[textSideEFAnswer, 3]))) → wEF
  88. closestFraction(sideDE - sideDEWhole, denominators) → sideDEFrac
  89. closestFraction(sideAB - sideABWhole, denominators) → sideABFrac
  90. closestFraction(sideBC - sideBCWhole, denominators) → sideBCFrac
  91. closestFraction(sideCA - sideCAWhole, denominators) → sideCAFrac
  92. Polygon(Zip[PixelsToPoint[Corner[1], Corner[3], Corner[5], A], A, {(pixelsLeft, pixelsTop), (pixelsLeft, y(Corner[5]) - pixelsBottom), Corner[5] - (pixelsRight, pixelsBottom), (x(Corner[5]) - pixelsRight, pixelsTop)}]) → borderBox
  93. Corner(5) → Dims
  94. If(randomScale < 1, "$F$", "$C$") → movePointLabel3a
  95. sideLabelNew(randomPointA, randomPointB, wAB, hAB, randomPointC) → boxLabelAB
  96. sideLabelNew(randomPointB, randomPointC, wBC, hBC, randomPointA) → boxLabelBC
  97. sideLabelNew(randomPointC, randomPointA, wCA, hCA, randomPointB) → boxLabelCA
  98. sideLabelNew(answerTriangleD, answerTriangleE, wDE, hDE, answerTriangleF) → boxLabelAnswerDE
  99. sideLabelNew(answerTriangleF, answerTriangleD, wFD, hFD, answerTriangleE) → boxLabelAnswerFD
  100. sideLabelNew(answerTriangleF, answerTriangleE, wEF, hEF, answerTriangleD) → boxLabelAnswerEF
  101. Polygon(dilatedPointD, dilatedPointE, dilatedPointF) → dilatedTriangle, dilatedDE, dilatedEF, dilatedFD
  102. Polygon(translatedPointD, translatedPointE, translatedPointF) → translatedTriangle, translatedDE, translatedEF, translatedFD
  103. Polygon(Rotate[translatedPointD, randomRotation°, MidTranslated], Rotate[translatedPointE, randomRotation°, MidTranslated], Rotate[translatedPointF, randomRotation°, MidTranslated]) → rotatedTriangle, rotatedTriangleDE, rotatedTriangleEF, rotatedTriangleFD
  104. triPointLabelPosition(randomPointA, randomPointB, randomPointC, 0.75) → textAlignA
  105. triPointLabelPosition(randomPointB, randomPointA, randomPointC, 0.75) → textAlignB
  106. triPointLabelPosition(randomPointC, randomPointB, randomPointA, 0.75) → textAlignC
  107. Segment(PointAStart, PointBStart) → ABStart
  108. Polygon(PointAStart, PointBStart, PointCStart) → triangleABCStart, triangleABStart, triangleBCStart, triangleCAStart
  109. Polygon(translatedPointA, translatedPointB, translatedPointC) → translatedTriangleABC, translatedTriangleAB, translatedTriangleBC, translatedTriangleCA
  110. triPointLabelPosition(answerTriangleF, answerTriangleD, answerTriangleE, 0.75) → textAlignFAnswer
  111. Vertex(boxLabelCA, 1) → textAlignCA
  112. Vertex(boxLabelAB, 1) → textAlignAB
  113. Vertex(boxLabelBC, 1) → textAlignBC
  114. Polygon(NewAnswerD, NewAnswerE, NewAnswerF) → translatedSolutionP1, userAnswerDEP1, userAnswerEFP1, userAnswerFDP1
  115. sideLabelNew(NewAnswerE', NewAnswerF', wEF, hEF, NewAnswerD') → userBoxLabelEF
  116. sideLabelNew(NewAnswerF', NewAnswerD', wFD, hFD, NewAnswerE') → userBoxLabelFD
  117. sideLabelNew(NewAnswerD', NewAnswerE', wDE, hDE, NewAnswerF') → userBoxLabelDE
  118. triPointLabelPosition(NewAnswerD', NewAnswerE', NewAnswerF', 0.75) → NewAlignD
  119. triPointLabelPosition(NewAnswerE', NewAnswerD', NewAnswerF', 0.75) → NewAlignE
  120. triPointLabelPosition(NewAnswerF', NewAnswerD', NewAnswerE', 0.75) → NewAlignF
  121. If(randomOrder ≟ 1, (10, -6), (0, -5)) → AnswerTextPosition
  122. onboardingTextOffset(Corner[onboardingText, 1], Corner[onboardingText, 3], onboardingCase, Corner[1], Corner[3], Corner[5]) → OnboardingTextOffset
  123. PointToPixels(Corner[1], Corner[3], Corner[5], (9.9975, yAnswerText)) → YourAnswerPointPix
  124. Centroid(questionTriangle) → CenterABC
  125. Zip(UnitVector[Line[CenterABC, n]] + n, n, {randomPointA, randomPointB, randomPointC}) → ABCCenterLabels
  126. Sequence(ABCCenterLabels(n) + (((-Element[dimSize, 1])) / 2, Element[dimSize, 2] / 2) - Element[dimSize, 3], n, 1, 3) → PointLabelABC
  127. TriangleCenter(randomPointA, randomPointB, randomPointC, 1) → InCentABC
  128. Zip((1.5 * UnitVector[Line[InCentABC, n]]) + m, n, InCentsABC, m, MidpointsABC) → StartLabelABC
  129. TriangleCenter(NewAnswerD', NewAnswerE', NewAnswerF', 1) → InCentDEFA
  130. Zip((1.5 * UnitVector[Line[InCentDEFA, n]]) + m, n, InCentsDEF', m, MidpointsDEF') → StartLabelDEF'
  131. Centroid(answerTriangle) → CenterDEF''
  132. Zip(UnitVector[Line[CenterDEF'', n]] + n, n, {answerTriangleD, answerTriangleE, answerTriangleF}) → DEFCenterLabels''
  133. TriangleCenter(answerTriangleD, answerTriangleE, answerTriangleF, 1) → InCentDEFA'
  134. Sequence(DEFCenterLabels''(n) + (((-Element[dimSize, 1])) / 2, Element[dimSize, 2] / 2) - Element[dimSize, 3], n, 1, 3) → PointLabelDEF''
  135. Zip((1.5 * UnitVector[Line[InCentDEFA', n]]) + m, n, InCentsDEF'', m, MidpointsDEF'') → StartLabelDEF''
  136. Angle(answerTriangleD, answerTriangleF, answerTriangleE) → angle3A
  137. Angle(randomPointA, randomPointC, randomPointB) → angle3Q
  138. Angle(answerTriangleF, answerTriangleE, answerTriangleD) → angle2AN
  139. Angle(answerTriangleE, answerTriangleD, answerTriangleF) → angle1AN
  140. Zip(Vertex[n, 1], n, {boxLabelAB, boxLabelBC, boxLabelCA, boxLabelAnswerDE, boxLabelAnswerEF, boxLabelAnswerFD}) → PointSideTextLabels

AI Drawing Prompt Reference

The figure consists of a randomly generated triangle, with multiple transformed triangle copies obtained through rotation, scaling, translation, and further transformations. The initial triangle is based on two rectangular regions, and random points determine vertex positions. Subsequent transformations yield a series of transformed triangles. The figure includes random points, the original triangle, and its transformed versions, illustrating the construction and transformation of similar triangles.
The prompt above was compiled from the original drawing commands and is for reference only.