Creating Angles on a Grid

Creating Angles on a Grid
Loading the math board and drawing, please wait…
2023-01-25 06:33
This example demonstrates how to create different types of angles on a grid by moving a third point around two fixed points. The key mathematical concepts involve identifying and drawing angles (acute, right, obtuse, and straight). The construction uses GeoGebra commands such as RandomUniform, Polygon, Angle, and others. It is suitable for students in grades 4-5 for geometry practice.

GeoGebra Commands & Parameters

  1. RandomUniform(0, 0.99, 200) → allRandomSeeds, {0.29175957441687134, 0.12397914842976555, 0.28082368892259707, 0.8167611566633118, 0.7369889489795545, 0.6350615464344525, 0.14795868621133645, 0.6013390059755165, 0.8984748280531879, 0.1743192606927562, 0.7122809603666932, 0.8467107274815218, 0.9898554724443788, 0.23011287684276735, 0.6775606859528955, 0.5792345019203615, 0.08534903299211545, 0.5405419436428717, 0.3632793160303772, 0.47554249956316436, 0.41849734145128614, 0.14141667973480704, 0.459911670815373, 0.3949562842525164, 0.6001571903028503, 0.8985209510726911, 0.30041024418098855, 0.5307449788473522, 0.35174575306570305, 0.28222164439108205, 0.354772508330246, 0.777553289524493, 0.36172921678828474, 0.14563381304694756, 0.050773076026189266, 0.508450239017891, 0.8212641776996717, 0.044142798598010555, 0.13108165163272878, 0.9096099393237453, 0.8887578241992986, 0.03411389031684126, 0.265063173670326, 0.37363323770692464, 0.5529086439345049, 0.02208675420406112, 0.802571137018419, 0.6939552630044665, 0.16952157025167006, 0.09265621175882711, 0.11699512376854974, 0.022656790695128673, 0.14906129322959352, 0.6135829472860902, 0.18571359695841017, 0.11230731854593226, 0.10951484280440422, 0.02045658900404131, 0.827927769232214, 0.2792168799104575, 0.1126799192338404, 0.9304508336287735, 0.12261724816368516, 0.6606579211067791, 0.5314771618366095, 0.24536421421574944, 0.22305854936954664, 0.6322427976896947, 0.46130517745375343, 0.7182324728306769, 0.4989863638071775, 0.23370198442946863, 0.4598140252744335, 0.49532681474471707, 0.10305425372988734, 0.0618069432502336, 0.016768010344952903, 0.30632036585088984, 0.9747640788531907, 0.7981164772882511, 0.9389013366296676, 0.4398084304744648, 0.942485431377163, 0.616599046751104, 0.6338392464958948, 0.7892101932159377, 0.9025750007221895, 0.9219935140410465, 0.9122658101512593, 0.7653595145526649, 0.2539313322025758, 0.7840193492237568, 0.09856361655149695, 0.9468079720253819, 0.03658468814682424, 0.9152323085637921, 0.7071332513059155, 0.32701884061073405, 0.31412304243844147, 0.5914454178626483, 0.24452059448603045, 0.5292216846599369, 0.9018930205066357, 0.07319460651664514, 0.19633717467370962, 0.11472698355255272, 0.5059917868721222, 0.034727545392398786, 0.652753783171657, 0.9689666981764928, 0.08207902944646525, 0.4134285686310568, 0.7370799004853473, 0.2714312036898786, 0.26798934444273736, 0.39746700731745777, 0.028611629031787475, 0.7710148281398529, 0.4800140601684482, 0.8527652552743974, 0.43353803868138907, 0.40706115462987214, 0.2795481766859554, 0.4521322954207649, 0.8662409413151704, 0.8986167420553928, 0.6245605465356946, 0.6695930611609611, 0.23780502542139823, 0.8300553553334229, 0.6490482820942213, 0.5715675939412672, 0.3889762146860606, 0.08032741600702517, 0.5032735550444536, 0.6536141250727574, 0.0411623922649936, 0.5856180016472641, 0.06815783740426413, 0.3069485799164093, 0.5013662822988968, 0.801164155262808, 0.2887224776918408, 0.4928881003392948, 0.7851724845852981, 0.3173857848137972, 0.1439149708026047, 0.9757400132734718, 0.4360807005907811, 0.45832712111090224, 0.2535497411290035, 0.10546720029864086, 0.15958419879564087, 0.3966843438941388, 0.5574178534541786, 0.300709762967467, 0.37643822645663966, 0.819411852559987, 0.5168839785114794, 0.00042788236073745486, 0.3915445655911259, 0.8510543957881244, 0.6454902256864773, 0.04855408142497964, 0.03279936760409595, 0.8585435407649729, 0.5022247158384929, 0.9506034905793722, 0.34810785942704775, 0.9612266165811734, 0.47918953685824667, 0.3441888694806333, 0.15856519710321504, 0.6633627882225864, 0.21441579053462312, 0.5368226671481743, 0.8515347295124007, 0.6032255613122159, 0.7005250291513155, 0.12426138263790786, 0.3890248333644126, 0.7932924409479495, 0.7408248269803608, 0.21095809613750194, 0.8743734234724253, 0.7097819688073551, 0.6262527009041239, 0.6709372167299589, 0.8937933856277245, 0.5270152478049485, 0.6393456400694676, 0.14259050052871586, 0.1488152522829246, 0.47273315596355764, 0.3151146198709464, 0.5045173852398305, 0.7310830243593471, 0.6645921491076847, 0.9633410906536767, 0.9415922714608314}
  2. Take(allRandomSeeds, randIndex, randIndex + numRandoms - 1) → currentRandomSeeds
  3. If(countQuestion ≟ 0, 1, 1 + floor((currentRandomSeeds(2) * 3))) → orientationType
  4. Element({(4, 0), (0, 4), (3, 3)}, orientationType) → FixedB
  5. Element({(-4, 0), (0, -4), (-3, -3)}, orientationType) → FixedA
  6. UnitVector(FixedB - FixedA) → uAB
  7. UnitOrthogonalVector(uAB) → perpAB
  8. Polygon({FixedA + (0.3 * perpAB), FixedA - (0.3 * perpAB), FixedB - (0.3 * perpAB), FixedB + (0.3 * perpAB)}) → straightRegion
  9. Midpoint(FixedA, FixedB) → Anchor
  10. Distance(Anchor, FixedB) → circRadius
  11. Circle(Anchor, circRadius - 0.3) → circInner
  12. Remove(Sequence[A, A, 5, 355, 5], {180}) → rightDegrees
  13. RemoveUndefined(Flatten[Sequence[Sequence[If[Distance[(i, j), Anchor] > circRadius + 0.5, (i, j)], i, minX + 1, minX + boxWidth - 1, 0.2], j, minY + 1, minY + boxHeight - 1, 0.2]]) → acutePoints
  14. Point(acutePoints) → PAcute
  15. Point(Zip[Rotate[FixedA, K°, Anchor], K, rightDegrees]) → PRight
  16. Point(Sequence[FixedA + (K * UnitVector[FixedB - FixedA]), K, 1, Distance[FixedB, FixedA] - 1]) → PStraight
  17. RemoveUndefined(Flatten[Sequence[Sequence[If[IsInRegion[(i, j), circInner] ∧ (¬IsInRegion[(i, j), straightRegion]), (i, j)], i, -5, 5, 0.2], j, -5, 5, 0.2]]) → obtusePoints
  18. Point(obtusePoints) → PObtuse
  19. Polygon({(minX + 1, minY + 1), (minX + boxWidth - 1, minY + 1), (minX + boxWidth - 1, minY + boxHeight - 1), (minX + 1, minY + boxHeight - 1)}) → moveBox
  20. PointIn(moveBox) → PMove
  21. Circle(Anchor, Distance[Anchor, FixedB]) → circRight
  22. Element({isAcute, isObtuse, isRight, isStraight}, caseNum) → correct
  23. Corner(5) → layoutAppSize
  24. Element({"an acute", "an obtuse", "a right", "a straight"}, caseNum) → angleWord
  25. Element({PAcute, PObtuse, PRight, PStraight}, caseNum) → PSoln
  26. PolyLine({FixedA, PSoln, FixedB}) → solnSegments
  27. Angle(FixedA, PSoln, FixedB) → solnAngle
  28. circlePixels(PMove, 7 + (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingCircle
  29. Semicircle(PStraight + uAB, PStraight - uAB) → straightDisplay

AI Drawing Prompt Reference

Create angles on a grid with fixed points A and B on the axes, A on the positive x-axis and B on the positive y-axis. Draw different types of angles: acute, right, obtuse, and straight angles by moving point P. Start by drawing fixed points A and B, then draw a right angle region. Next, draw a circle with A and B as endpoints, and select an acute angle point PAcute from it. Then, draw a circle centered at B and select a right angle point PRight from it. Draw a line segment between A and B, and select an obtuse angle point PObtuse from it. Finally, draw a move box for point P to ensure it is within the right angle region but not on the straight line segment.
The prompt above was compiled from the original drawing commands and is for reference only.