Adding Fractions with Diagrams: Visual Pie Charts and Equivalent Fractions
Loading the math board and drawing, please wait…
① This GeoGebra example dynamically demonstrates the addition of two fractions using pie charts and circle divisions, showing how equivalent fractions are formed through common denominators. ② Core math concepts include fraction meaning, common denominators (LCM), simplification (GCD), equivalent fractions, and mixed numbers. ③ Construction highlights: uses Circle and Point to draw circles, Sequence, Midpoint, If, Vector, Translate to build and move pie sections; LCM and GCD commands compute common denominators and factors; Text objects display fraction labels and equivalence signs; sliders allow interactive adjustment of numerators and denominators. ④ Suitable for upper elementary to middle school students learning fraction operations, and for teachers to visually explain fraction addition in class.
GeoGebra Commands & Parameters
Circle(A_1, r) → cPoint(c) → BCircle(A_2, r) → dLCM(denominator1, denominator2) → equivalentdenominatorSequence(Segment[A_2, Rotate[C_2, r°, A_2]], r, 0, 360, 360 / denominator2) → PIEALL_2Sequence(Segment[A_1, Rotate[C_1, r°, A_1]], r, 360 / denominator1, 360, 360 / denominator1) → PIEALL_1Sequence(CircleSector[A_1, Rotate[C_1, r°, A_1], Rotate[C_1, (r + 360 / denominator1)°, A_1]], r, 0, (360 / denominator1 * numerator1) - 360 / denominator1, 360 / denominator1) → PIESECTION_1Sequence(CircleSector[A_2, Rotate[C_2, ((-r) - 360 / denominator2)°, A_2], Rotate[C_2, ((-r))°, A_2]], r, 0, (360 / denominator2 * numerator2) - 360 / denominator2, 360 / denominator2) → PIESECTION_2Sequence(Segment[A_1, Rotate[C_1, r°, A_1]], r, 0, 360, 360 / equivalentdenominator) → PIEALL_{1E}Sequence(Segment[A_2, Rotate[C_2, r°, A_2]], r, 0, 360, 360 / equivalentdenominator) → PIEALL_{2E}Sequence(CircleSector[A_1, Rotate[C_1, r°, A_1], Rotate[C_1, (r + 360 / equivalentdenominator)°, A_1]], r, 0, (360 / equivalentdenominator * numerator_{1E}) - 360 / equivalentdenominator, 360 / equivalentdenominator) → PIESECTION_{1E}Sequence(CircleSector[A_2, Rotate[C_2, ((-r) - 360 / equivalentdenominator)°, A_2], Rotate[C_2, ((-r))°, A_2]], r, 0, (360 / equivalentdenominator * numerator_{2E}) - 360 / equivalentdenominator, 360 / equivalentdenominator) → PIESECTION_{2E}Midpoint(A_1, A_2) → A_{mid}Circle(A_1, r) → PIESECTION_{1whole}Circle(A_2, r) → PIESECTION_{2whole}If(¬subtractfractions, "+", "−") → addsign2Sequence(CircleSector[A_2, Rotate[C_2, r°, A_2], Rotate[C_2, (r + 360 / denominator2)°, A_2]], r, 0, (360 / denominator2 * numerator2) - 360 / denominator2, 360 / denominator2) → PIESECTION_{2subtract}Sequence(CircleSector[A_2, Rotate[C_2, r°, A_2], Rotate[C_2, (r + 360 / equivalentdenominator)°, A_2]], r, 0, (360 / equivalentdenominator * numerator_{2E}) - 360 / equivalentdenominator, 360 / equivalentdenominator) → PIESECTION_{2Esubtract}If(ShiftCircleLeftRight ≟ (2.5 * r), 1, 0) → triggerSequence(CircleSector[A_2, Rotate[C_2, r°, A_2], Rotate[C_2, (r + 360 / equivalentdenominator)°, A_2]], r, (numerator_{2E} * 360 / equivalentdenominator), (360 / equivalentdenominator * (numerator_{1E} - 1)), 360 / equivalentdenominator) → PIESECTION_{finalsubtract1}Vector(A_2, A_{2end1}) → uTranslate(PIESECTION_{finalsubtract1}, Vector[(DetachPie * u)]) → PIESECTION_{finalsubtract2}Vector(A_2, A_{2end2}) → vCircle(A_2, r) → PIESECTION_{whole1}Sequence(CircleSector[A_2, Rotate[C_2, r°, A_2], Rotate[C_2, (r + 360 / equivalentdenominator)°, A_2]], r, ((equivalentdenominator - numerator_{2E}) * 360 / equivalentdenominator), (360 / equivalentdenominator * (mixednumerator + equivalentdenominator - numerator_{2E} - 1)), 360 / equivalentdenominator) → PIESECTION_{part1}Circle(A_2, r) → PIESECTION_{whole2}Translate(PIESECTION_{whole2}, Vector[(DetachPie * v)]) → PIESECTION_{whole2v}Translate(PIESECTION_{part1}, Vector[(DetachPie * v)]) → PIESECTION_{part2}Translate(PIESECTION_{whole1}, Vector[(DetachPie * u)]) → PIESECTION_{whole1u}If(subtractfractions, "Subtraction of Fractions", "Addition of Fractions") → textTitleGCD(equivalentnumerator, equivalentdenominator) → ResultGCDGCD(abs(equivalentnumerator_{subtract}), equivalentdenominator) → ResultGCD_{subtract}If(abs(equivalentnumerator) < equivalentdenominator, If[ResultGCD ≟ 1, (4.5 * r), (3.5 * r)], If[ResultGCD ≟ 1, 0, (-2 * r)]) → x_{textEquivalentsign3}If(ResultGCD ≟ 1, (-0.25 * r), If[equivalentnumerator < equivalentdenominator, (5 * r), (-0.25 * r)]) → x_{textposition2}Sequence(CircleSector[A_2, Rotate[C_2, r°, A_2], Rotate[C_2, (r + 360 / equivalentdenominator)°, A_2]], r, (numerator_{1E} * 360 / equivalentdenominator), (360 / equivalentdenominator * (numerator_{2E} - 1)), 360 / equivalentdenominator) → PIESECTION_{negativefinalsubtract1}Vector(A_2, A_{2end3}) → wTranslate(PIESECTION_{negativefinalsubtract1}, Vector[(DetachPie * v)]) → PIESECTION_{negativefinalsubtract2}