Area Models for Improper Fractions – Two Fractions
Loading the math board and drawing, please wait…
This example uses area models to visually demonstrate the magnitude and addition/subtraction relationships of two improper fractions. Core mathematical concepts include fraction representation, conversion between improper fractions and mixed numbers, the correspondence between area and quantity, and conversion among percentages, decimals, and fractions. Construction employs GeoGebra commands Rotate, CircleSector, Polygon, If, Sequence, and Segment to create sectors, rectangles, and segmented shading objects such as circle1sector, rect1shadePartial, frac1Num1, and frac1Denom1. It is suitable for upper‑primary to lower‑secondary fraction instruction, teacher‑created lesson materials, or student‑driven exploration.
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 side‑by‑side area models for improper fractions; each model consists of a circle divided into equal sectors by the denominator, with a shaded sector showing the fractional part, and two rows of rectangles representing whole units — whole rectangles fully shaded and a final rectangle partially shaded according to the remainder. Concentric circles mark unit counts on the circular model, while vertical segments inside the rectangles indicate the denominator divisions. Horizontal lines separate the two fraction models, together illustrating magnitude, addition or subtraction, and conversion to mixed numbers.
The prompt above was compiled from the original drawing commands and is for reference only.