Geometric addition and subtraction of fractions using circle partitioning
Loading the math board and drawing, please wait…
This example uses circle partitioning plus translation and overlapping shading to visually demonstrate how fractions can be added and subtracted in a concrete “parts of a whole” way. It builds a clear geometric interpretation of fraction arithmetic, showing how the final fraction corresponds to the remaining (or combined) shaded pieces. Key concepts include fractions, the logic behind adding/subtracting fractions with a common denominator, least common multiple (LCM) for aligning denominators, and the mapping between numerator/denominator values and the number of equal slices. Construction-wise, it first creates circles with commands like Circle (using objects such as centerR/radius and centerB/circleB), then uses LCM (and GCD) to compute common-denominator quantities including LCMdenominator and LCMnumeratorR/LCMnumeratorB. Vector-based geometry is used to position one partition relative to another (Vector and Translate with objects like shiftcircle and u/v or related parameters such as tfactorB). Finally, it uses cutting and shading operations (e.g., cutR/cutB and cutLCMR/cutLCMB, shadeR/shadeB, and aggregations like cuttotal0/total0) to highlight exactly which sub-slices remain for subtraction or which are combined for addition, ending with a visible showfinal result. Suitable for middle-school learners and math visualization/teaching on fraction operations.
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
AI Drawing Prompt Reference
Draw a figure composed of concentric circles, each divided into equal slices. Use shading to highlight different parts. Show the process of fraction addition and subtraction through overlapping and translation: one circle's shaded portion overlapping another's unshaded portion represents subtraction, while shaded portions of both circles combined represent addition. Emphasize the concept of a common denominator using the least common multiple to determine the number of equal slices. Use different colors to distinguish addition, subtraction, and the final result. The layout should clearly illustrate the geometric meaning of fraction operations, suitable for math education.
The prompt above was compiled from the original drawing commands and is for reference only.