Measuring Angles Using a Protractor

Measuring Angles Using a Protractor
Loading the math board and drawing, please wait…
2022-10-26 06:12
This activity demonstrates how to measure angles using an interactive protractor, helping students understand angle concepts. Key math concepts include angle measurement, the relationship between a circle and 360 degrees, and using a protractor for construction. Construction involves generating random angles with RandomUniform, creating circles and arcs with Circle and Arc, finding intersections with Intersect, and calculating angles with Angle. Suitable for grades 4-5 for geometry practice.

GeoGebra Commands & Parameters

  1. RandomUniform(0, 0.99, 200) → allRandomSeeds, {0.3153404677866415, 0.2761555169423194, 0.3107770875263359, 0.677084696361758, 0.7711339551623652, 0.22401862397786385, 0.8305783734272846, 0.06586948122677139, 0.5067891915923397, 0.07040804772100806, 0.5032405376638666, 0.18181022590448992, 0.4119110421418313, 0.08824550060838025, 0.617530791311082, 0.8299220377332805, 0.26189776416289, 0.7082508073852819, 0.20034052761200716, 0.27634733891650715, 0.7065204704600381, 0.5715027076861465, 0.06449177381469354, 0.5004248624241231, 0.8773993607003989, 0.9417152117654609, 0.7581219052018994, 0.11329066829989054, 0.2523744153636917, 0.43121084904657214, 0.7666866021552664, 0.17390143978734085, 0.3407741212453228, 0.4901878659865966, 0.5732203812850767, 0.06132996277468569, 0.7142791579524791, 0.7966810606495088, 0.2667809929483873, 0.5073293608501617, 0.8434590422508866, 0.9846057223707958, 0.722978918675853, 0.4554959977031624, 0.6501275721433464, 0.47945258070507724, 0.7741549872154234, 0.3128829602431588, 0.030419526730461378, 0.575566589906839, 0.4801191437813745, 0.46662485561915046, 0.15293367306288239, 0.9054946538807047, 0.34339982440327477, 0.7420310309146892, 0.1604184807470226, 0.5706286398358144, 0.3556789056448599, 0.419688624471129, 0.6122952640024399, 0.053296725777257754, 0.6244986034387887, 0.19738782862195228, 0.29881900997549216, 0.1435720392642982, 0.8714265354817534, 0.248141258626811, 0.9758708112715684, 0.5693700909341133, 0.20465222987915743, 0.008215641021643188, 0.2722567590046559, 0.9458964237384749, 0.36046321910123497, 0.8789276580239742, 0.058956045630929176, 0.06018439734544442, 0.2292106766926932, 0.562977789957197, 0.8120175119210471, 0.13832734806680183, 0.2922239836602859, 0.7403048506607037, 0.8377466187942876, 0.11706265019242548, 0.7266715224240169, 0.5098400245943854, 0.40045623698690846, 0.10760556647003376, 0.13558852674088548, 0.622123562468114, 0.039372557091220756, 0.5880578743631648, 0.9602058901670252, 0.003519033856835777, 0.4722935258779893, 0.021332170705090057, 0.6513127063687548, 0.6657181229972157, 0.04929059736966722, 0.3083351596018909, 0.5456730503725673, 0.31437647100165317, 0.18012520460917658, 0.9511432675918595, 0.1024915732887048, 0.23805417851104094, 0.2141200955974338, 0.008082343748174894, 0.30358482143644366, 0.2831569016154951, 0.7909811182462398, 0.11198749750419179, 0.7892651107905221, 0.802281548699482, 0.10550870388290698, 0.39447279974509636, 0.07998018284605468, 0.25226798673445544, 0.42826910994215694, 0.5027799941173501, 0.0014773052378315743, 0.2643413666845887, 0.038113646519507396, 0.5317037810311536, 0.9186716847718766, 0.5920016737957783, 0.7109401447637769, 0.11120602058849893, 0.12049973472209356, 0.19277584905603082, 0.22228448835506548, 0.9006338721316506, 0.40482388448022016, 0.007594448962134019, 0.5592101784110244, 0.3329479045907266, 0.5789305276524921, 0.03638869231287667, 0.17953336623607938, 0.917042667140994, 0.9373254745902747, 0.050525268628911206, 0.20367527450001174, 0.2431086327704482, 0.9643795615326588, 0.23190520218709584, 0.2963787759820529, 0.7350365400828499, 0.44491553270591055, 0.724949747356566, 0.07215541561468977, 0.03510543938177135, 0.2510509823933041, 0.7012800268316668, 0.7096484947079101, 0.5796236224635164, 0.6485247977095391, 0.04766871108932252, 0.26610316512289106, 0.559806963573839, 0.160333774986281, 0.2958012389210338, 0.883827930103703, 0.009981461073502049, 0.8997934570271998, 0.7675299068084322, 0.6459131191584075, 0.005187523990901387, 0.10911169286747255, 0.02163914659595278, 0.5185397051479285, 0.752441054062571, 0.32322573793796483, 0.9676608668401684, 0.801968136115234, 0.8842715614598213, 0.16200293179851058, 0.25898814311205837, 0.6917402756666605, 0.1597103326591322, 0.5469426323392603, 0.9614320361379769, 0.42575789212365794, 0.1566420565873819, 0.9312410547487384, 0.2544502480389602, 0.4317198686596733, 0.2203607496788616, 0.5644935569903544, 0.7305477550748453, 0.8429064210771313, 0.8962862754611663, 0.5054076773206954, 0.49380858348452505, 0.9884912068823967, 0.8601004626296941, 0.26768797622654766, 0.02116433145858384}
  2. Sequence(10, 175, 1) → angles
  3. Take(allRandomSeeds, randIndex, randIndex + numRandoms - 1) → currentRandomSeeds
  4. Element(angles, randomNum1) → randomAngle
  5. Circle(ProtractorCenter_{1}, r) → ProtractorCircle_{1}
  6. Point(ProtractorCircle_{1}) → ProtractorLeft_{1}
  7. DynamicCoordinates(ProtractorLeft_{1}, x(ProtractorLeft_{1}), y(ProtractorLeft_{1})) → ProtractorLeftDyn_{1}
  8. Point(ProtractorCircle_{1}) → ProtractorRight_{1}
  9. DynamicCoordinates(ProtractorRight_{1}, x(ProtractorRight_{1}), y(ProtractorRight_{1})) → ProtractorRightDyn_{1}
  10. Arc(ProtractorCircle_{1}, ProtractorRightDyn_{1}, ProtractorLeftDyn_{1}) → c
  11. Intersect(c, LineBisector[ProtractorRightDyn_{1}, ProtractorLeftDyn_{1}]) → D, E
  12. Sequence(((2 * cos(ii)), (2 * sin(ii))), ii, 5°, 360°, 2°) → PointsRays
  13. Textfield(input1) → InputBox1
  14. Corner(5) → layoutAppSize
  15. sectorPixels(A, B, C, haloPixels + 40, Corner[1], Corner[3], Corner[5]) → pulsingObject
  16. sectorPixels(A, B, C, 40, Corner[1], Corner[3], Corner[5]) → displayAngle
  17. PointToPixels(Corner[onboardingDisplayText, 2], Corner[1], Corner[3], Corner[5]) → layoutOnboarding
  18. onboardingTextOffset(Corner[onboardingText, 1], Corner[onboardingText, 3], onboardingCase, Corner[1], Corner[3], Corner[5]) → OnboardingTextOffset
  19. Element(PointsRays, randomNum2) → EndPointRay1
  20. Rotate(EndPointRay1, randomAngle°) → EndPointRay2
  21. Polygon({(-4.5, -3.7), (4.5, -3.7), (4.5, 3.7), (-4.5, 3.7)}) → graphicArea
  22. IntersectPath(Ray[Center, EndPointRay1], graphicArea) → Ray1
  23. IntersectPath(Ray[Center, EndPointRay2], graphicArea) → Ray2
  24. Angle(Vector[EndPointRay1], Vector[EndPointRay2]) → angleToShow
  25. Dilate(Rotate[EndPointRay1, (angleToShow * If[randomAngle ≤ 25, 2, 0.5])], If[randomAngle ≤ 25, 0.5, 0.75]) → LabelPosAngleToShow
  26. Min(Angle[Vector[EndPointRay1], Vector[(1, 0)]], Angle[Vector[(1, 0)], Vector[EndPointRay1]]) → rotAngleRightProt
  27. Min(Angle[Vector[EndPointRay2], Vector[(-1, 0)]], Angle[Vector[(-1, 0)], Vector[EndPointRay2]]) → rotAngleLeftProt
  28. If(x(D) ≥ 0 ∧ y(D) ≥ 0, 1, x(D) < 0 ∧ y(D) ≥ 0, 2, x(D) < 0 ∧ y(D) < 0, 3, 4) → quadrantProtractorCenter
  29. If(quadrantProtractorCenter ≟ 4, 2, quadrantProtractorCenter ≟ 2, 4, quadrantProtractorCenter ≟ 3, 1, 3) → quadrantLegend
  30. Element(LegendPositions, quadrantLegend) → Legend2
  31. Translate(Legend1, (0, -0.5)) → Legend3
  32. Translate(Legend2, (0, -0.5)) → Legend4
  33. Segment(Legend2, Legend1) → segmentLegendCorrect
  34. Segment(Legend4, Legend3) → segmentLegendIncorrect
  35. Text("\textsf{ Correct solution\\}", Legend1, true, true, If[2 ≤ quadrantLegend ≤ 3, -1, 1], 0) → legendCorrect
  36. Text("\textsf{ Your solution\\}", Legend3, true, true, If[2 ≤ quadrantLegend ≤ 3, -1, 1], 0) → legendIncorrect
  37. Dilate(If[RotateRight, EndPointRay2, EndPointRay1], r / 2) → EndCorrectArc
  38. Dilate(If[RotateRight, EndPointRay1, EndPointRay2], r / 2) → IniCorrectArc
  39. Arc(x^(2) + y^(2) = Distance[Center, IniCorrectArc]^(2), IniCorrectArc, EndCorrectArc) → correctArc1
  40. Arc(x^(2) + y^(2) = Distance[Center, IniCorrectArc]^(2), EndCorrectArc, IniCorrectArc) → correctArc2
  41. Dilate(IniCorrectArc, 1.02) → IniIncorrectArc
  42. Rotate(IniIncorrectArc, (input1° * If[RotateRight, 1, -1])) → EndIncorrectArc
  43. Arc(x^(2) + y^(2) = Distance[Center, IniIncorrectArc]^(2), IniIncorrectArc, EndIncorrectArc) → incorrectArc1
  44. Arc(x^(2) + y^(2) = Distance[Center, IniIncorrectArc]^(2), EndIncorrectArc, IniIncorrectArc) → incorrectArc2
  45. Segment(Center, EndIncorrectArc) → segmentIncorrect
  46. Text((input1 * "°"), (x(Dilate[EndIncorrectArc, 1.1]), Max[y(Dilate[EndIncorrectArc, 1.1]), -3.55]), true, true, 0, 0) → labelPointIncorrect
  47. Rotate(IniCorrectArc, ((animCurve * randomAngle°) * If[RotateRight, 1, -1])) → IniCorrectArc'
  48. Arc(x^(2) + y^(2) = Distance[Center, IniCorrectArc]^(2), IniCorrectArc, IniCorrectArc') → arcAnim1
  49. Arc(x^(2) + y^(2) = Distance[Center, IniCorrectArc]^(2), IniCorrectArc', IniCorrectArc) → arcAnim2
  50. Text(("\alpha" * If[showsolution ∧ step ≟ 0 ∨ step ≟ 3 ∧ animCurve ≟ 1, (("=" * randomAngle) * "°"), ""]), LabelPosAngleToShow, true, true, 0, 0) → labelAngleToShow
  51. circlePixels(ProtractorLeftDyn_{1}, 5 + (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingObjectLeft
  52. circlePixels(ProtractorRightDyn_{1}, 5 + (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingObjectRight
  53. circlePixels(ProtractorCenter_{1}, 5 + (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingObjectCenter

AI Drawing Prompt Reference

Draw a square working area in the coordinate plane. At a fixed center point, construct two rays so that their endpoints lie on the boundary of the square. Create a protractor-style circular arc that spans between the two rays and includes an angle reading text (linked to a user input angle). Then add a second, “your solution” arc: an arc with the same radius centered at the same point, starting from a reference direction and ending at the position determined by the input angle, with a nearby label showing the input in degrees. Finally overlay a “correct solution” arc: an arc centered at the same point, spanning the actual angle between the two constructed rays, and place an on-screen correct/incorrect text near the legend area.
The prompt above was compiled from the original drawing commands and is for reference only.