Visualizing Equivalent Fractions with Models

Visualizing Equivalent Fractions with Models
Loading the math board and drawing, please wait…
2023-06-15 09:39
This example uses different types of visual models to help students understand the concept of equivalent fractions. Using GeoGebra commands such as RandomUniform and Zip, students can explore the relationships between equivalent fractions. Suitable for 4-5 grade students, it aids in learning how to write equivalent fractions using models.

GeoGebra Commands & Parameters

  1. RandomUniform(0, 0.99, 200) → allRandomSeeds, {0.6373122650890546, 0.9776953732500375, 0.6346612142726489, 0.26204278414600846, 0.021290995076380062, 0.6371531833988481, 0.7645708197700253, 0.939639958909575, 0.8935002243766219, 0.845519836530782, 0.907392413327278, 0.4986264071868864, 0.046978481451225025, 0.5596127791829371, 0.39595179303682515, 0.6519566232688773, 0.17159555157274844, 0.6336526142119085, 0.12312489195138818, 0.262269386385315, 0.3132180884105496, 0.13823931889150665, 0.4817437770439257, 0.12420634277886564, 0.3805892728375974, 0.9081417946830938, 0.5917821706160945, 0.07700706698261778, 0.4296371435736192, 0.46684463565047424, 0.6656625499462148, 0.6412577266342381, 0.5964779645126095, 0.03383335655890333, 0.9214235442269383, 0.8128004158822688, 0.4241219049575021, 0.5483237115337106, 0.7295696670024738, 0.8606293158641811, 0.49381573611459606, 0.5705531038958342, 0.9726976397020715, 0.7041053134575304, 0.9700723850092515, 0.018851331028000795, 0.9074520811021471, 0.9780140957484907, 0.5987403305154325, 0.48749569184928426, 0.7160100321569762, 0.8818738456482215, 0.11995547072559196, 0.1268289762745966, 0.14912759346249418, 0.7824666234401192, 0.032496552511678524, 0.8332822750241052, 0.4048037440362658, 0.8758237164620931, 0.7029296414213619, 0.5727931588855939, 0.36582484266349335, 0.40683849444560277, 0.5819806537366847, 0.36664723755351386, 0.8158507028615232, 0.4413111965811464, 0.22181475166963818, 0.9539959737612201, 0.1872859242856215, 0.9465481555937096, 0.4413289662563375, 0.3702151609801997, 0.5749528417903046, 0.5526443256504259, 0.6721804391374072, 0.9548687377828972, 0.6175404599590016, 0.3872710168020796, 0.816074287407726, 0.5473290421800154, 0.7039510588006836, 0.6121714962827077, 0.7138264109335452, 0.6020798897401299, 0.6739992597215665, 0.32963583239181976, 0.3188935221280547, 0.8093904527093776, 0.04244077032898788, 0.06198195295474577, 0.19242823457764302, 0.17039780045991706, 0.9420161825885587, 0.6365131641144103, 0.843469900931216, 0.2486728657229284, 0.09509219403828056, 0.9525537690169058, 0.7266217913174646, 0.5630696473685081, 0.5545665088807384, 0.9559819630255545, 0.34049322814682037, 0.6790687902100678, 0.4829739121433686, 0.35018565058998496, 0.1833002465618942, 0.2879272458646739, 0.0841903923332451, 0.6005602667721979, 0.6373216334766713, 0.594731946072979, 0.08477829991045364, 0.3225478871605749, 0.8913965402595917, 0.2479306893152471, 0.3118497571650051, 0.3907858355211829, 0.2803284216289033, 0.29407517142727874, 0.39134699457739125, 0.1291889968027872, 0.21192511184478915, 0.09236081544537054, 0.9448470089766153, 0.4187325534460418, 0.0464569693834592, 0.5540851702546467, 0.9143950261930502, 0.8313337767696624, 0.6395562977688592, 0.8123713878145845, 0.6334541975713607, 0.8045489869581545, 0.5080078328068841, 0.25741491718183585, 0.4978319995279049, 0.3128084738856295, 0.6284965777856314, 0.7921120175272666, 0.8734008161654251, 0.886604432401762, 0.9821806820467467, 0.602214731626445, 0.8075787641524838, 0.5114293239368005, 0.8429484251803024, 0.4941326474838802, 0.78886891196233, 0.4533288075186891, 0.5343953223126389, 0.012162963477127649, 0.603277969211881, 0.39769044740522774, 0.3899230920074844, 0.5152806316976216, 0.7281437146858816, 0.9323323168643257, 0.9619145881237825, 0.7416571476510482, 0.33279700637762893, 0.9550864582388647, 0.4096795165704812, 0.7668012098546974, 0.18156855393563462, 0.7398904857450145, 0.051792801472436166, 0.8986266508330806, 0.20792174488121018, 0.15390665075625606, 0.9665633406779935, 0.8598525792925401, 0.5289519842922386, 0.031380957551108306, 0.2846733849752836, 0.30492776362853474, 0.9071394809736877, 0.7078357599500309, 0.20051884773052567, 0.04514616542017785, 0.601076176703587, 0.6407575679190216, 0.9834588117128357, 0.35178198851913767, 0.4589095868525531, 0.19019793162991047, 0.9870477427880229, 0.252923270626839, 0.017454428694466582, 0.11464806846831507, 0.5633763869400541, 0.035218764520970725, 0.9063202592720455, 0.6541795098835086, 0.9008879175943797, 0.1869790198742244, 0.7599867117852037, 0.7741608586495669}
  2. Zip(currentNumer / A ≤ 4, A, {2, 3, 4, 5, 6}) → validDenoms
  3. If(caseNum ≟ 1, modelWidth / currentDenom, 4) → boxWidthLeft
  4. If(caseNum ≟ 1, 4, modelWidth / currentDenom) → boxHeightLeft
  5. Flatten(Sequence[Sequence[AnchorLeft + ((boxWidthLeft * i), ((-1.2 * boxHeightLeft) * j)), i, 0, currentDenom - 1], j, 0, 3]) → boxAnchorsLeftCase1
  6. If(caseNum ≟ 1, 4, modelWidth / rightDenom) → boxHeightRight
  7. Flatten(Sequence[Sequence[AnchorLeft + ((modelWidth / 2 * i), (((-modelWidth)) / 2 * j)), i, 0, 1], j, 0, 1]) → circAnchorsLeft
  8. Translate(circAnchorsLeft, AnchorRight - AnchorLeft) → circAnchorsRight
  9. Zip(Sequence[Rotate[A + ((0.24 * modelWidth), 0), K, A], K, 0, (2 * pi), (2 * pi / rightDenom)], A, circAnchorsRight) → sectorPointsRight
  10. Element({modelWidth / currentDenom, 0, modelWidth / currentDenom}, caseNum) → pieceSizeLeft
  11. If(caseNum ≟ 1, modelWidth / rightDenom, 4) → boxWidthRight
  12. Flatten(Sequence[Sequence[AnchorRight + ((boxWidthRight * i), ((-1.2 * boxHeightRight) * j)), i, 0, rightDenom - 1], j, 0, 3]) → boxAnchorsRightCase1
  13. Element({(x(AnchorRight), y(boxAnchorsLeftCase1(-1) - boxHeightRight)), sectorPointsRight(1, 1), AnchorRight}, caseNum) → SlideStartRight
  14. Sequence(A, A, 0, 45, 45 / 4) → unitLocations
  15. Unique(Remove[Flatten[Zip[Sequence[(A + B, 0), B, 0, unitLocations(2), unitLocations(2) / currentDenom], A, Take[unitLocations, 1, Length[unitLocations] - 1]]], {(0, 0)}]) → smallNumerLocations
  16. Flatten(Zip[Sequence[(A + B, 0), B, 0, unitLocations(2), unitLocations(2) / rightDenom], A, Take[unitLocations, 1, Length[unitLocations] - 1]]) → tickLocations
  17. Point(smallNumerLocations) → PEnd
  18. Take(allRandomSeeds, randIndex, randIndex + numRandoms - 1) → currentRandomSeeds
  19. Corner(5) → layoutAppSize
  20. Flatten(Sequence[Sequence[AnchorRight + (((1.2 * boxWidthRight) * i), case3Offset - (boxHeightRight * j)), j, 0, rightDenom - 1], i, 0, 3]) → boxAnchorsRightCase3
  21. If(caseNum ≟ 1, boxAnchorsRightCase1, boxAnchorsRightCase3) → boxAnchorsRight
  22. Zip(Sequence[Rotate[A + ((0.24 * modelWidth), 0), K, A], K, 0, (2 * pi), (2 * pi / currentDenom)], A, circAnchorsLeft) → sectorPointsLeft
  23. Zip(Sequence[CircleSector[A, Element[B, K], Element[B, K + 1]], K, 1, Length[B] - 1], A, circAnchorsLeft, B, sectorPointsLeft) → sectorsLeft
  24. Take(Unique[Flatten[sectorsLeft]], 1, currentNumer) → filledSectorsLeft
  25. Translate(filledSectorsLeft, AnchorRight - AnchorLeft) → filledSectorsRight
  26. Segment((-2, 0), (47, 0)) → numberLine
  27. Zip(Text[("" * A), (B, -0.5), true, true, 0, -1], A, Sequence[("" * A), A, 0, Length[unitLocations]], B, unitLocations) → numbers
  28. Zip(Sequence[Segment[(A + B, 0), (A + B, -0.5)], B, 0, unitLocations(2), unitLocations(2) / rightDenom], A, Take[unitLocations, 1, Length[unitLocations] - 1]) → smallTicks
  29. Zip(Segment[(A, 1), (A, -1)], A, unitLocations) → bigTicks
  30. Zip(Sequence[Segment[(A + B, 0.75), (A + B, 0)], B, 0, unitLocations(2), unitLocations(2) / currentDenom], A, Take[unitLocations, 1, Length[unitLocations] - 1]) → mediumTicks
  31. Segment((0, 0), PEnd) → fractionSegment
  32. Element({(x(AnchorLeft), y(boxAnchorsLeftCase1(-1) - boxHeightRight)), sectorPointsLeft(1, 1), AnchorLeft}, caseNum) → SlideStartLeft
  33. Element({SlideStartRight + (pieceSizeLeft / 2, 0), Rotate[SlideStartRight, pi / currentDenom, AnchorRight], SlideStartRight + (0, ((-pieceSizeLeft)) / 2)}, caseNum) → SlideEndRight
  34. Element({SlideStartLeft + (modelWidth / 2, 0), Rotate[SlideStartLeft, pi, AnchorLeft], SlideStartLeft + (0, ((-modelWidth)) / 2)}, caseNum) → SlideEndLeft
  35. Sequence(Element[{SlideStartRight + ((2 / A * (x(SlideEndRight) - x(SlideStartRight))), 0), Rotate[SlideStartRight, (2 * Angle[SlideStartRight, AnchorRight, SlideEndRight] / A), AnchorRight], SlideStartRight + (0, (2 / A * (y(SlideEndRight) - y(SlideStartRight))))}, caseNum], A, 6, 2, -1) → denPointsRight
  36. Point(denPointsRight) → PMoveRight
  37. Sequence(Element[{SlideStartLeft + ((1 / A * modelWidth), 0), Rotate[SlideStartLeft, (2 * pi / A), AnchorLeft], SlideStartLeft + (0, (-1 / A * modelWidth))}, caseNum], A, 6, minDenom, -1) → denPointsLeft
  38. Point(denPointsLeft) → PMoveLeft
  39. Zip(topBox[boxHeightRight, boxWidthRight, A], A, boxAnchorsRight) → boxesRight
  40. Flatten(Sequence[Sequence[AnchorLeft + (((1.2 * boxWidthLeft) * i), ((-boxHeightLeft) * j)), j, 0, currentDenom - 1], i, 0, 3]) → boxAnchorsLeftCase3
  41. If(caseNum ≟ 1, boxAnchorsLeftCase1, boxAnchorsLeftCase3) → boxAnchorsLeft
  42. Zip(topBox[boxHeightLeft, boxWidthLeft, A], A, boxAnchorsLeft) → boxesLeft
  43. Take(boxesLeft, 1, currentNumer) → filledLeft
  44. Translate(filledLeft, AnchorRight - AnchorLeft) → filledRight
  45. Zip(Sequence[CircleSector[A, Element[B, K], Element[B, K + 1]], K, 1, Length[B] - 1], A, circAnchorsRight, B, sectorPointsRight) → sectorsRight
  46. TableText({((fracDisplayLeft * "=") * fracDisplayRight)}, "c", 200, 5) → fracDisplay
  47. IndexOf(PEnd, Unique[smallNumerLocations]) → movingNumer
  48. Segment(denPointsLeft(1), denPointsLeft(-1)) → slideSegmentLeft
  49. CircleArc(AnchorLeft, denPointsLeft(1), denPointsLeft(-1)) → slideArcLeft
  50. CircleArc(AnchorRight, denPointsRight(1), denPointsRight(-1)) → slideArcRight
  51. Segment(denPointsRight(1), denPointsRight(-1)) → slideSegmentRight
  52. onboardingTextOffset(Corner[onboardingText1, 1], Corner[onboardingText1, 3], onboardingCase, Corner[1], Corner[3], Corner[5]) → OnboardingOffset
  53. circlePixels(PMoveLeft, 7 + (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingObject1
  54. circlePixels(PEnd, 7 + (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingObject2

AI Drawing Prompt Reference

Create a visualization for equivalent fractions with three different visual models: block model, circular sector model, and number line model. The left side shows the original fraction while the right side shows its equivalent. A horizontal number line runs through with tick marks and numeric labels above. In the block model, the area is divided into rows of small blocks, with the numerator blocks filled with color. In the circular model, a circle is divided into sectors with the numerator sectors filled. Use translation and rotation to copy models from left to right for comparison. Display the fraction equation in a text table below, such as '2/4 = 1/2'. Include small, medium, and large tick marks along with a dynamic segment representing the fraction value.
The prompt above was compiled from the original drawing commands and is for reference only.