分数的因数分解可视化:动态分组与几何演示

分数的因数分解可视化:动态分组与几何演示
几何画板及绘图内容加载中,请稍等……
2020-11-10 02:56
① 本范例通过动态分组和几何排列,直观展示一个分数(如假分数)的因数分解过程,将分子分母的因数以可视化的组块呈现,并支持用户输入自定义分数。② 核心数学概念包括因数分解、分数化简、带分数与假分数的转换,以及几何平均和积分思想在分组布局中的体现。③ 作图要点:使用 Textfield 和 InputBox1 接收用户输入,通过 IndexOf、FromBase 等命令解析分数文本,利用 If、Min、RemoveUndefined、Sequence、First、Zip 等命令计算因数并生成分组,借助 Corner 定位起点,配合 Mover、Switcher 等对象实现动态移动和切换,最终用多个点、线段和文本对象构建出因数分组与整体移动的动画效果。④ 适合初中至高中阶段学生学习因数与分数概念,也可用于教师课堂演示,帮助学生理解因数分解与分数结构的几何意义。

GeoGebra 命令及参数

  1. Textfield(fraction) → InputBox1
  2. Text(InputBox1 + "", false) → fractionText
  3. IndexOf("/", fractionText) → slashLocation
  4. FromBase(Take[fractionText, slashLocation + 2, Length[fractionText]], 10) → fakeD
  5. If(valid, fakeN, 1) → N
  6. If(valid, fakeD, 2) → D
  7. Min(1, 4 / (ceil(N / wholes) + 1)) → height
  8. If(wholes > 1, 1 / (wholes - 1), 1) → Hgap
  9. RemoveUndefined(Sequence[If[N / i ≟ floor(N / i), i], i, 1, N]) → factorsOfN
  10. If(Defined[Element[factorsOfN, Switcher]], Element[factorsOfN, Switcher], 1) → groups
  11. Sequence(Max[0, Min[1, (groups * (Mover - k / groups))]], k, 0, groups) → movers
  12. First(Flatten[Sequence[Sequence[StartingPoint + (((i * spacing) * (length + Hgap)), ((-j) * (height + Vgap))), i, 0, perRow - 1], j, 1, ceil(groups / perRow)]], groups) → newGroupAnchors
  13. Sequence(Sequence[Element[newGroupAnchors, j] + ((i * (length + Hgap)), 0), i, 0, Div[N / groups, D] - IsInteger[N / D / groups]], j, 1, Length[newGroupAnchors]) → newWholePoints
  14. Sequence(Polygon[StartingPoint + (((length + Hgap) * i), 0), StartingPoint + ((length * (i + 1)) + (Hgap * i), 0), StartingPoint + ((length * (i + 1)) + (Hgap * i), height), StartingPoint + (((length + Hgap) * i), height)], i, 0, wholes - 1) → originalWholes
  15. Sequence(StartingPoint + Point[{(i * length / D) + (Div[i, D] * Hgap), 0}], i, 0, (wholes * D) - 1) → origFractionPoints
  16. Sequence(Sequence[Element[newGroupAnchors, j] + ((i * length / D) + (Div[i, D] * Hgap), 0), i, 0, N / groups - 1], j, 1, Length[newGroupAnchors]) → groupFractionPoints
  17. First(Sequence[Sequence[Sequence[Element[newWholePoints, i, j] + ((k * length / D) + (Hgap * Div[k, D]), 0), k, 0, D - 1], j, 1, Length[Element[newWholePoints, i]]], i, 1, Length[newWholePoints]], Sum[floor(movers)]) → extendedFractionPoints
  18. Sequence(Sequence[Element[origFractionPoints, i + j], i, 1, N / groups], j, 0, N + 1 - N / groups - (groups ≟ N), N / groups) → groupedOrigPoints
  19. Zip(Segment[AAA, AAA + (0, height)], AAA, Flatten[{origFractionPoints, extendedFractionPoints}]) → fractionLines
  20. Zip((AAA * (1 - BBB)) + (CCC * BBB), AAA, groupedOrigPoints, BBB, movers, CCC, groupFractionPoints) → movingPoints
  21. Zip(Polygon[AAA, AAA + (length / D, 0), AAA + (length / D, height), AAA + (0, height)], AAA, Flatten[movingPoints]) → movingFractions
  22. First(Sequence[Sequence[Polygon[Element[newWholePoints, i, j], Element[newWholePoints, i, j] + (length, 0), Element[newWholePoints, i, j] + (length, height), Element[newWholePoints, i, j] + (0, height)], j, 1, ceil(N / groups / D)], i, 1, Length[newWholePoints]], Sum[floor(movers)]) → newWholes
  23. Zip(Polygon[AAA, AAA + (length / D, 0), AAA + (length / D, height), AAA + (0, height)], AAA, Flatten[groupedOrigPoints]) → origFractions
  24. Corner(5) → A

AI 绘图提示语参考

绘制一个动态演示分数因数分解的几何图形。画面左侧有一个输入框,用户可输入分数,系统将其解析为分子和分母。分子和分母的因数被分解为若干小矩形块,这些块可以分组移动。图形上方显示整数部分(带分数),下方显示分数部分。所有矩形块按行列整齐排列,高度一致,宽度按分母等分。通过滑块或拖动,因数块会从原始位置平滑移动到新的分组位置,同时保持整体面积不变。图形中还包括表示分数线的水平线段,以及用于标记分组位置的锚点。整体布局清晰,适合教学演示。
以上提示语为根据原始绘图命令整理而来,仅供参考。