用图形演示分数加法:饼图与等效分数

用图形演示分数加法:饼图与等效分数
几何画板及绘图内容加载中,请稍等……
2020-01-29 04:59
① 本范例通过动态饼图(Pie Chart)和圆的分割,直观演示两个分数相加的过程,并展示如何通过通分得到等效分数。② 核心数学概念包括分数的基本意义、通分(最小公倍数LCM)、约分(最大公约数GCD)、等效分数以及带分数的表示。③ 作图要点:使用Circle和Point绘制圆,通过Sequence、Midpoint、If、Vector、Translate等命令构造饼图的分割与移动;利用LCM和GCD计算公分母与公因数;用Text对象显示分数文本和等效符号;通过Slider或动态对象调整分子分母,实时更新图形。④ 适合小学高年级至初中阶段学习分数运算的学生,也可用于教师课堂演示,帮助理解分数加法的几何意义。

GeoGebra 命令及参数

  1. Circle(A_1, r) → c
  2. Point(c) → B
  3. Circle(A_2, r) → d
  4. LCM(denominator1, denominator2) → equivalentdenominator
  5. Sequence(Segment[A_2, Rotate[C_2, r°, A_2]], r, 0, 360, 360 / denominator2) → PIEALL_2
  6. Sequence(Segment[A_1, Rotate[C_1, r°, A_1]], r, 360 / denominator1, 360, 360 / denominator1) → PIEALL_1
  7. Sequence(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_1
  8. Sequence(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_2
  9. Sequence(Segment[A_1, Rotate[C_1, r°, A_1]], r, 0, 360, 360 / equivalentdenominator) → PIEALL_{1E}
  10. Sequence(Segment[A_2, Rotate[C_2, r°, A_2]], r, 0, 360, 360 / equivalentdenominator) → PIEALL_{2E}
  11. 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}
  12. 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}
  13. Midpoint(A_1, A_2) → A_{mid}
  14. Circle(A_1, r) → PIESECTION_{1whole}
  15. Circle(A_2, r) → PIESECTION_{2whole}
  16. If(¬subtractfractions, "+", "−") → addsign2
  17. Sequence(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}
  18. 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}
  19. If(ShiftCircleLeftRight ≟ (2.5 * r), 1, 0) → trigger
  20. Sequence(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}
  21. Vector(A_2, A_{2end1}) → u
  22. Translate(PIESECTION_{finalsubtract1}, Vector[(DetachPie * u)]) → PIESECTION_{finalsubtract2}
  23. Vector(A_2, A_{2end2}) → v
  24. Circle(A_2, r) → PIESECTION_{whole1}
  25. 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}
  26. Circle(A_2, r) → PIESECTION_{whole2}
  27. Translate(PIESECTION_{whole2}, Vector[(DetachPie * v)]) → PIESECTION_{whole2v}
  28. Translate(PIESECTION_{part1}, Vector[(DetachPie * v)]) → PIESECTION_{part2}
  29. Translate(PIESECTION_{whole1}, Vector[(DetachPie * u)]) → PIESECTION_{whole1u}
  30. If(subtractfractions, "Subtraction of Fractions", "Addition of Fractions") → textTitle
  31. GCD(equivalentnumerator, equivalentdenominator) → ResultGCD
  32. GCD(abs(equivalentnumerator_{subtract}), equivalentdenominator) → ResultGCD_{subtract}
  33. If(abs(equivalentnumerator) < equivalentdenominator, If[ResultGCD ≟ 1, (4.5 * r), (3.5 * r)], If[ResultGCD ≟ 1, 0, (-2 * r)]) → x_{textEquivalentsign3}
  34. If(ResultGCD ≟ 1, (-0.25 * r), If[equivalentnumerator < equivalentdenominator, (5 * r), (-0.25 * r)]) → x_{textposition2}
  35. 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}
  36. Vector(A_2, A_{2end3}) → w
  37. Translate(PIESECTION_{negativefinalsubtract1}, Vector[(DetachPie * v)]) → PIESECTION_{negativefinalsubtract2}