Area Models for Comparing Fractions
Loading the math board and drawing, please wait…
This example demonstrates how to compare two proper or improper fractions using area models of circles or rectangles. Users can adjust the numerators and denominators of the fractions via sliders to visualize the area changes. Key math concepts include fraction comparison, area calculation, and the relationship between numerators and denominators. The construction utilizes GeoGebra commands like Rotate, CircleSector, Polygon, If, Sequence, and Segment, along with objects such as yRow4, yRow3, etc. It is suitable for middle school mathematics education, helping students understand fraction relationships and visual representation.
GeoGebra Commands & Parameters
Rotate(Sector1a, angle1, Center1) → Sector1bCircleSector(Center1, Sector1a, Sector1b) → circle1sectorRotate(Sector1a, (360 / denom1)°, Center1) → Sector1cPolygon((x(Center1) - 0.09, y(Center1) - 0.07), (x(Center1) - 0.09 + 0.18 * (val1 - floor(val1)), y(Center1) - 0.07), (x(Center1) - 0.09 + 0.18 * (val1 - floor(val1)), y(Center1) + 0.07), (x(Center1) - 0.09, y(Center1) + 0.07)) → rect1shadePartial, g, h, i, jIf(val1 ≤ 5, Sequence[Circle[(i, yRow1), CircleDiameters], i, 0.1, Element[Position, If[val1 ≠ round(val1), floor(val1), ceil(val1)]], 0.2], Sequence[Circle[(i, yRow1), CircleDiameters], i, 0.1, Element[Position, 5], 0.2]) → circle1fill1If(val1 ≤ 5, Sequence[Circle[(i, yRow1), CircleDiameters], i, 0.1, Element[Position, ceil(val1)], 0.2], Sequence[Circle[(i, yRow1), CircleDiameters], i, 0.1, Element[Position, 5], 0.2]) → circle1outline1If(val1 ≤ 10, Sequence[Circle[(i, yRow2), CircleDiameters], i, 0.1, Element[Position, floor(val1)], 0.2], Sequence[Circle[(i, yRow2), CircleDiameters], i, 0.1, Element[Position, 5], 0.2]) → circle1fill2Sequence(Sequence[Segment[Rotate[(k, yRow2), (360 / denom1 * i)°, (k, yRow2)], Rotate[(k, yRow2) + (0, CircleDiameters), (360 * i / denom1)°, (k, yRow2)]], i, 0, denom1], k, 0.1, Element[Position, ceil(val1)], 0.2) → circle1div2If(val1 ≤ 10, Sequence[Circle[(i, yRow2), CircleDiameters], i, 0.1, Element[Position, ceil(val1)], 0.2], Sequence[Circle[(i, yRow2), CircleDiameters], i, 0.1, Element[Position, 10], 0.2]) → circle1outline2Sequence(Polygon[Translate[(Element[Position, 1], 0) + (-0.09, yRow1 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow1 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow1 + 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (-0.09, yRow1 + 0.07), Vector[(0, 0), (i, 0)]]], i, 0, Element[Position, If[val1 ≤ 5, ceil(val1), 5]], 0.2) → rect1outline1SeqSequence(Sequence[Segment[(k - 0.09 + 0.18 / denom1 * i, yRow1 - 0.07), (k - 0.09 + 0.18 / denom1 * i, yRow1 + 0.07)], i, 1, denom1 - 1], k, 0.1, If[val1 ≥ 5, 0.9, Element[Position, ceil(val1)]], 0.2) → rect1div1Sequence(Sequence[Segment[(k - 0.09 + 0.18 / denom1 * i, yRow2 - 0.07), (k - 0.09 + 0.18 / denom1 * i, yRow2 + 0.07)], i, 1, denom1 - 1], k, 0.1, If[val1 ≥ 10, 0.9, Element[Position, ceil(val1)]], 0.2) → rect1div2Sequence(Polygon[Translate[(Element[Position, 1], 0) + (-0.09, yRow1 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow1 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow1 + 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (-0.09, yRow1 + 0.07), Vector[(0, 0), (i, 0)]]], i, 0, Element[Position, If[val1 ≤ 5, floor(val1), 5]], 0.2) → rect1shade1SeqSequence(Polygon[Translate[(Element[Position, 1], 0) + (-0.09, yRow2 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow2 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow2 + 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (-0.09, yRow2 + 0.07), Vector[(0, 0), (i, 0)]]], i, 0, Element[Position, If[val1 < 10, floor(val1), 10]], 0.2) → rect1shade2SeqSequence(Polygon[Translate[(Element[Position, 1], 0) + (-0.09, yRow2 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow2 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow2 + 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (-0.09, yRow2 + 0.07), Vector[(0, 0), (i, 0)]]], i, 0, Element[Position, If[val1 < 10, ceil(val1), 10]], 0.2) → rect1outline2SeqRotate(Sector2a, angle2, Center2) → Sector2bRotate(Sector2a, (360 / denom2)°, Center2) → Sector2cCircleSector(Center2, Sector2a, Sector2b) → circle2sectorSequence(Sequence[Segment[Rotate[(k, yRow3), (360 / denom2 * i)°, (k, yRow3)], Rotate[(k, yRow3) + (0, CircleDiameters), (360 * i / denom2)°, (k, yRow3)]], i, 0, denom2], k, 0.1, If[val2 ≥ 5, 0.9, Element[Position, ceil(val2)]], 0.2) → circle2div1Sequence(Sequence[Segment[Rotate[(k, yRow4), (360 / denom2 * i)°, (k, yRow4)], Rotate[(k, yRow4) + (0, CircleDiameters), (360 * i / denom2)°, (k, yRow4)]], i, 0, denom2], k, 0.1, Element[Position, ceil(val2)], 0.2) → circle2div2If(val2 ≤ 5, Sequence[Circle[(i, yRow3), CircleDiameters], i, 0.1, Element[Position, If[val2 ≠ round(val2), floor(val2), ceil(val2)]], 0.2], Sequence[Circle[(i, yRow3), CircleDiameters], i, 0.1, Element[Position, 5], 0.2]) → circle2fill1If(val2 ≤ 10, Sequence[Circle[(i, yRow4), CircleDiameters], i, 0.1, Element[Position, If[val2 ≠ round(val2), floor(val2), ceil(val2)]], 0.2], Sequence[Circle[(i, yRow4), CircleDiameters], i, 0.1, Element[Position, 10], 0.2]) → circle2fill2Sequence(Sequence[Segment[Rotate[(k, yRow1), (360 / denom1 * i)°, (k, yRow1)], Rotate[(k, yRow1) + (0, CircleDiameters), (360 * i / denom1)°, (k, yRow1)]], i, 0, denom1], k, 0.1, If[val1 ≥ 5, 0.9, Element[Position, ceil(val1)]], 0.2) → circle1div1If(val2 ≤ 5, Sequence[Circle[(i, yRow3), CircleDiameters], i, 0.1, Element[Position, ceil(val2)], 0.2], Sequence[Circle[(i, yRow3), CircleDiameters], i, 0.1, Element[Position, 5], 0.2]) → circle2outline1If(val1 ≤ 10, Sequence[Circle[(i, yRow4), CircleDiameters], i, 0.1, Element[Position, ceil(val2)], 0.2], Sequence[Circle[(i, yRow4), CircleDiameters], i, 0.1, Element[Position, 10], 0.2]) → circle2outline2Sequence(Sequence[Segment[(k - 0.09 + 0.18 / denom2 * i, yRow3 - 0.07), (k - 0.09 + 0.18 / denom2 * i, yRow3 + 0.07)], i, 1, denom2 - 1], k, 0.1, If[val2 ≥ 5, 0.9, Element[Position, ceil(val2)]], 0.2) → rect2div1Sequence(Sequence[Segment[(k - 0.09 + 0.18 / denom2 * i, yRow4 - 0.07), (k - 0.09 + 0.18 / denom2 * i, yRow4 + 0.07)], i, 1, denom2 - 1], k, 0.1, If[val2 ≥ 10, 0.9, Element[Position, ceil(val2)]], 0.2) → rect2div2Sequence(Polygon[Translate[(Element[Position, 1], 0) + (-0.09, yRow4 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow4 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow4 + 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (-0.09, yRow4 + 0.07), Vector[(0, 0), (i, 0)]]], i, 0, Element[Position, If[val2 ≤ 10, ceil(val2), 10]], 0.2) → rect2outline2SeqSequence(Polygon[Translate[(Element[Position, 1], 0) + (-0.09, yRow4 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow4 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow4 + 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (-0.09, yRow4 + 0.07), Vector[(0, 0), (i, 0)]]], i, 0, Element[Position, If[val2 ≤ 10, floor(val2), 10]], 0.2) → rect2shade2SeqPolygon((x(Center2) - 0.09, y(Center2) - 0.07), (x(Center2) - 0.09 + 0.18 * (val2 - floor(val2)), y(Center2) - 0.07), (x(Center2) - 0.09 + 0.18 * (val2 - floor(val2)), y(Center2) + 0.07), (x(Center2) - 0.09, y(Center2) + 0.07)) → rect2shadePartial, l, p, q, rSequence(Polygon[Translate[(Element[Position, 1], 0) + (-0.09, yRow3 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow3 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow3 + 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (-0.09, yRow3 + 0.07), Vector[(0, 0), (i, 0)]]], i, 0, Element[Position, If[val2 ≤ 4, ceil(val2), 5]], 0.2) → rect2outline1SeqSequence(Polygon[Translate[(Element[Position, 1], 0) + (-0.09, yRow3 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow3 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow3 + 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (-0.09, yRow3 + 0.07), Vector[(0, 0), (i, 0)]]], i, 0, Element[Position, If[val2 ≤ 5, floor(val2), 5]], 0.2) → rect2shade1SeqSegment((0, 0.285), (-20, 0.285)) → dividerHoriz1Segment((0, -0.08), (-20, -0.08)) → dividerHoriz2
AI Drawing Prompt Reference
Draw two circular area models to compare the sizes of two fractions. Each model consists of a central circle and multiple sectors, with the number of sectors determined by the numerator and the angle of each sector by the denominator of the fraction. Use sliders to adjust the numerators and denominators of the two fractions and observe the changes in the areas. Separate the models with horizontal lines for clear comparison.
The prompt above was compiled from the original drawing commands and is for reference only.