分数加减法的可视化演示:用圆与LCM构造等值分数

分数加减法的可视化演示:用圆与LCM构造等值分数
几何画板及绘图内容加载中,请稍等……
2015-08-01 14:53
① 本范例通过两个圆形的面积分割,直观展示分数相加与相减的几何意义,帮助理解同分母与异分母分数运算的视觉过程。② 核心数学概念包括分数的基本性质、通分(最小公倍数LCM)、等值分数、以及分数加减法的运算规则。③ 作图要点:使用Circle命令绘制两个圆,分别表示两个分数;利用LCM计算公分母,并通过Sequence、Vector、Translate等命令生成等分线段和移动图形;对象如numeratorR、denominatorR、cutR、shadeR等用于控制分子、分母、切割与着色区域;最终通过showfinal等对象展示结果。④ 适合小学高年级至初中阶段的学生学习分数运算,也可作为教师课堂演示工具,将抽象运算转化为直观的面积模型。

GeoGebra 命令及参数

  1. Circle(centerR, radius) → circleR
  2. Circle(centerB, radius) → circleB
  3. LCM(denominatorR, denominatorB) → LCMdenominator
  4. Sequence(Segment[centerR, Rotate[AR, radius°, centerR]], radius, 360 / denominatorR, 360, 360 / denominatorR) → cutR
  5. Sequence(Segment[centerB, Rotate[AB, radius°, centerB]], radius, 360 / denominatorB, 360, 360 / denominatorB) → cutB
  6. Sequence(CircleSector[centerR, Rotate[AR, radius°, centerR], Rotate[AR, (radius + 360 / denominatorR)°, centerR]], radius, 0, 360 / denominatorR * numeratorR - 360 / denominatorR, 360 / denominatorR) → shadeR
  7. Sequence(CircleSector[centerB, Rotate[AB, (-radius - 360 / denominatorB)°, centerB], Rotate[AB, (-radius)°, centerB]], radius, 0, 360 / denominatorB * numeratorB - 360 / denominatorB, 360 / denominatorB) → shadeB
  8. Sequence(Segment[centerR, Rotate[AR, radius°, centerR]], radius, 0, 360, 360 / LCMdenominator) → cutLCMR
  9. Sequence(Segment[centerB, Rotate[AB, radius°, centerB]], radius, 0, 360, 360 / LCMdenominator) → cutLCMB
  10. Vector(centerB, A) → u
  11. Vector(centerB, B) → v
  12. Translate(circleB, Vector[showfinal * u]) → total0
  13. Translate(cutLCMB, Vector[showfinal * u]) → cuttotal0
  14. Sequence(CircleSector[centerB, Rotate[AB, (-radius - 360 / denominatorB)°, centerB], Rotate[AB, (-radius)°, centerB]], radius, 0, 360 / denominatorB * numeratorB - 360 / denominatorB, 360 / denominatorB) → E
  15. Translate(shadeB, Vector[showfinal * u]) → F
  16. Sequence(CircleSector[centerB, Rotate[AB, radius°, centerB], Rotate[AB, (radius + 360 / denominatorR)°, centerB]], radius, 0, 360 / denominatorR * numeratorR - 360 / denominatorR, 360 / denominatorR) → H
  17. Translate(H, Vector[showfinal * u]) → I
  18. Vector(centerB, J) → w
  19. Translate(circleB, Vector[showfinal * w]) → D
  20. Translate(cutLCMB, Vector[showfinal * w]) → K
  21. Sequence(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) → N
  22. Translate(N, Vector[showfinal * v]) → O
  23. GCD(LCMnumerator, LCMdenominator) → P
  24. Translate(circleB, Vector[showfinal * u]) → C
  25. Translate(cutLCMB, Vector[showfinal * u]) → Q
  26. Sequence(CircleSector[centerB, Rotate[AB, radius°, centerB], Rotate[AB, (radius + 360 / LCMdenominator)°, centerB]], radius, LCMnumeratorB * 360 / LCMdenominator, 360 / LCMdenominator * (LCMnumeratorR - 1), 360 / LCMdenominator) → R
  27. Translate(R, Vector[showfinal * u]) → S
  28. Sequence(CircleSector[centerB, Rotate[AB, radius°, centerB], Rotate[AB, (radius + 360 / denominatorB)°, centerB]], radius, 0, 360 / denominatorB * numeratorB - 360 / denominatorB, 360 / denominatorB) → T
  29. Translate(circleB, Vector[showfinal * v]) → U
  30. Translate(cutLCMB, Vector[showfinal * v]) → V