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