Visualizing Addition and Subtraction of Fractions with Circles and LCM
Loading the math board and drawing, please wait…
① This GeoGebra example uses two circular area models to visually demonstrate how fractions are added and subtracted, making the operation of like and unlike denominators intuitive. ② Core math concepts include fraction basics, equivalent fractions, common denominators via Least Common Multiple (LCM), and the rules for adding/subtracting fractions. ③ Construction highlights: Circle commands create two circles representing the fractions; LCM computes the common denominator; Sequence, Vector, and Translate generate division lines and move parts; objects like numeratorR, denominatorR, cutR, shadeR control numerators, denominators, cuts, and shading; showfinal displays the final result. ④ Suitable for upper elementary to middle school students learning fraction operations, and useful for teachers as a dynamic visual aid in the classroom.
GeoGebra Commands & Parameters
Circle(centerR, radius) → circleRCircle(centerB, radius) → circleBLCM(denominatorR, denominatorB) → LCMdenominatorSequence(Segment[centerR, Rotate[AR, radius°, centerR]], radius, 360 / denominatorR, 360, 360 / denominatorR) → cutRSequence(Segment[centerB, Rotate[AB, radius°, centerB]], radius, 360 / denominatorB, 360, 360 / denominatorB) → cutBSequence(CircleSector[centerR, Rotate[AR, radius°, centerR], Rotate[AR, (radius + 360 / denominatorR)°, centerR]], radius, 0, 360 / denominatorR * numeratorR - 360 / denominatorR, 360 / denominatorR) → shadeRSequence(CircleSector[centerB, Rotate[AB, (-radius - 360 / denominatorB)°, centerB], Rotate[AB, (-radius)°, centerB]], radius, 0, 360 / denominatorB * numeratorB - 360 / denominatorB, 360 / denominatorB) → shadeBSequence(Segment[centerR, Rotate[AR, radius°, centerR]], radius, 0, 360, 360 / LCMdenominator) → cutLCMRSequence(Segment[centerB, Rotate[AB, radius°, centerB]], radius, 0, 360, 360 / LCMdenominator) → cutLCMBVector(centerB, A) → uVector(centerB, B) → vTranslate(circleB, Vector[showfinal * u]) → total0Translate(cutLCMB, Vector[showfinal * u]) → cuttotal0Sequence(CircleSector[centerB, Rotate[AB, (-radius - 360 / denominatorB)°, centerB], Rotate[AB, (-radius)°, centerB]], radius, 0, 360 / denominatorB * numeratorB - 360 / denominatorB, 360 / denominatorB) → ETranslate(shadeB, Vector[showfinal * u]) → FSequence(CircleSector[centerB, Rotate[AB, radius°, centerB], Rotate[AB, (radius + 360 / denominatorR)°, centerB]], radius, 0, 360 / denominatorR * numeratorR - 360 / denominatorR, 360 / denominatorR) → HTranslate(H, Vector[showfinal * u]) → IVector(centerB, J) → wTranslate(circleB, Vector[showfinal * w]) → DTranslate(cutLCMB, Vector[showfinal * w]) → KSequence(CircleSector[centerB, Rotate[AB, radius°, centerB], Rotate[AB, (radius + 360 / LCMdenominator)°, centerB]], radius, (LCMdenominator - LCMnumeratorB) * 360 / LCMdenominator, 360 / LCMdenominator * (M + LCMdenominator - LCMnumeratorB - 1), 360 / LCMdenominator) → NTranslate(N, Vector[showfinal * v]) → OGCD(LCMnumerator, LCMdenominator) → PTranslate(circleB, Vector[showfinal * u]) → CTranslate(cutLCMB, Vector[showfinal * u]) → QSequence(CircleSector[centerB, Rotate[AB, radius°, centerB], Rotate[AB, (radius + 360 / LCMdenominator)°, centerB]], radius, LCMnumeratorB * 360 / LCMdenominator, 360 / LCMdenominator * (LCMnumeratorR - 1), 360 / LCMdenominator) → RTranslate(R, Vector[showfinal * u]) → SSequence(CircleSector[centerB, Rotate[AB, radius°, centerB], Rotate[AB, (radius + 360 / denominatorB)°, centerB]], radius, 0, 360 / denominatorB * numeratorB - 360 / denominatorB, 360 / denominatorB) → TTranslate(circleB, Vector[showfinal * v]) → UTranslate(cutLCMB, Vector[showfinal * v]) → V