面积模型演示假分数——两个分数

面积模型演示假分数——两个分数
几何画板及绘图内容加载中,请稍等……
2020-08-18 22:31
① 本范例利用面积模型直观展示两个假分数的大小与加减关系。② 涉及分数表示、假分数与带分数转换、面积与数量的对应、百分数与小数换算等核心概念。③ 作图采用 Rotate、CircleSector、Polygon、If、Sequence、Segment 等命令,构建扇形、矩形、分段阴影等对象(如 circle1sector、rect1shadePartial、frac1Num1、frac1Denom1 等)。④ 适合小学高年级至初中低年级的分数教学演示,也可用于教师自制课件或学生自主探究。

GeoGebra 命令及参数

  1. Rotate(Sector1a, angle1, Center1) → Sector1b
  2. CircleSector(Center1, Sector1a, Sector1b) → circle1sector
  3. Rotate(Sector1a, (360 / denom1)°, Center1) → Sector1c
  4. Polygon((x(Center1) - 0.09, y(Center1) - 0.07), (x(Center1) - 0.09 + (0.18 * (val1 - floor(val1))), y(Center1) - 0.07), (x(Center1) - 0.09 + (0.18 * (val1 - floor(val1))), y(Center1) + 0.07), (x(Center1) - 0.09, y(Center1) + 0.07)) → rect1shadePartial, g, h, i, j
  5. If(val1 ≤ 5, Sequence[Circle[(i, yRow1), CircleDiameters], i, 0.1, Element[Position, If[val1 ≠ round(val1), floor(val1), ceil(val1)]], 0.2], Sequence[Circle[(i, yRow1), CircleDiameters], i, 0.1, Element[Position, 5], 0.2]) → circle1fill1
  6. If(val1 ≤ 5, Sequence[Circle[(i, yRow1), CircleDiameters], i, 0.1, Element[Position, ceil(val1)], 0.2], Sequence[Circle[(i, yRow1), CircleDiameters], i, 0.1, Element[Position, 5], 0.2]) → circle1outline1
  7. If(val1 ≤ 10, Sequence[Circle[(i, yRow2), CircleDiameters], i, 0.1, Element[Position, floor(val1)], 0.2], Sequence[Circle[(i, yRow2), CircleDiameters], i, 0.1, Element[Position, 5], 0.2]) → circle1fill2
  8. Sequence(Sequence[Segment[Rotate[(k, yRow2), (360 / denom1 * i°), (k, yRow2)], Rotate[(k, yRow2) + (0, CircleDiameters), (360 * (i / denom1)°), (k, yRow2)]], i, 0, denom1], k, 0.1, Element[Position, ceil(val1)], 0.2) → circle1div2
  9. If(val1 ≤ 10, Sequence[Circle[(i, yRow2), CircleDiameters], i, 0.1, Element[Position, ceil(val1)], 0.2], Sequence[Circle[(i, yRow2), CircleDiameters], i, 0.1, Element[Position, 10], 0.2]) → circle1outline2
  10. Sequence(Polygon[Translate[(Element[Position, 1], 0) + (-0.09, yRow1 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow1 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow1 + 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (-0.09, yRow1 + 0.07), Vector[(0, 0), (i, 0)]]], i, 0, Element[Position, If[val1 ≤ 5, ceil(val1), 5]], 0.2) → rect1outline1Seq
  11. Sequence(Sequence[Segment[(k - 0.09 + (0.18 / denom1 * i), yRow1 - 0.07), (k - 0.09 + (0.18 / denom1 * i), yRow1 + 0.07)], i, 1, denom1 - 1], k, 0.1, If[val1 ≥ 5, 0.9, Element[Position, ceil(val1)]], 0.2) → rect1div1
  12. Sequence(Sequence[Segment[(k - 0.09 + (0.18 / denom1 * i), yRow2 - 0.07), (k - 0.09 + (0.18 / denom1 * i), yRow2 + 0.07)], i, 1, denom1 - 1], k, 0.1, If[val1 ≥ 10, 0.9, Element[Position, ceil(val1)]], 0.2) → rect1div2
  13. Sequence(Polygon[Translate[(Element[Position, 1], 0) + (-0.09, yRow1 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow1 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow1 + 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (-0.09, yRow1 + 0.07), Vector[(0, 0), (i, 0)]]], i, 0, Element[Position, If[val1 ≤ 5, floor(val1), 5]], 0.2) → rect1shade1Seq
  14. Sequence(Polygon[Translate[(Element[Position, 1], 0) + (-0.09, yRow2 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow2 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow2 + 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (-0.09, yRow2 + 0.07), Vector[(0, 0), (i, 0)]]], i, 0, Element[Position, If[val1 < 10, floor(val1), 10]], 0.2) → rect1shade2Seq
  15. Sequence(Polygon[Translate[(Element[Position, 1], 0) + (-0.09, yRow2 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow2 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow2 + 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (-0.09, yRow2 + 0.07), Vector[(0, 0), (i, 0)]]], i, 0, Element[Position, If[val1 < 10, ceil(val1), 10]], 0.2) → rect1outline2Seq
  16. Rotate(Sector2a, angle2, Center2) → Sector2b
  17. Rotate(Sector2a, (360 / denom2)°, Center2) → Sector2c
  18. CircleSector(Center2, Sector2a, Sector2b) → circle2sector
  19. Sequence(Sequence[Segment[Rotate[(k, yRow3), (360 / denom2 * i°), (k, yRow3)], Rotate[(k, yRow3) + (0, CircleDiameters), (360 * (i / denom2)°), (k, yRow3)]], i, 0, denom2], k, 0.1, If[val2 ≥ 5, 0.9, Element[Position, ceil(val2)]], 0.2) → circle2div1
  20. Sequence(Sequence[Segment[Rotate[(k, yRow4), (360 / denom2 * i°), (k, yRow4)], Rotate[(k, yRow4) + (0, CircleDiameters), (360 * (i / denom2)°), (k, yRow4)]], i, 0, denom2], k, 0.1, Element[Position, ceil(val2)], 0.2) → circle2div2
  21. If(val2 ≤ 5, Sequence[Circle[(i, yRow3), CircleDiameters], i, 0.1, Element[Position, If[val2 ≠ round(val2), floor(val2), ceil(val2)]], 0.2], Sequence[Circle[(i, yRow3), CircleDiameters], i, 0.1, Element[Position, 5], 0.2]) → circle2fill1
  22. If(val2 ≤ 10, Sequence[Circle[(i, yRow4), CircleDiameters], i, 0.1, Element[Position, If[val2 ≠ round(val2), floor(val2), ceil(val2)]], 0.2], Sequence[Circle[(i, yRow4), CircleDiameters], i, 0.1, Element[Position, 10], 0.2]) → circle2fill2
  23. Sequence(Sequence[Segment[Rotate[(k, yRow1), (360 / denom1 * i°), (k, yRow1)], Rotate[(k, yRow1) + (0, CircleDiameters), (360 * (i / denom1)°), (k, yRow1)]], i, 0, denom1], k, 0.1, If[val1 ≥ 5, 0.9, Element[Position, ceil(val1)]], 0.2) → circle1div1
  24. If(val2 ≤ 5, Sequence[Circle[(i, yRow3), CircleDiameters], i, 0.1, Element[Position, ceil(val2)], 0.2], Sequence[Circle[(i, yRow3), CircleDiameters], i, 0.1, Element[Position, 5], 0.2]) → circle2outline1
  25. If(val1 ≤ 10, Sequence[Circle[(i, yRow4), CircleDiameters], i, 0.1, Element[Position, ceil(val2)], 0.2], Sequence[Circle[(i, yRow4), CircleDiameters], i, 0.1, Element[Position, 10], 0.2]) → circle2outline2
  26. Sequence(Sequence[Segment[(k - 0.09 + (0.18 / denom2 * i), yRow3 - 0.07), (k - 0.09 + (0.18 / denom2 * i), yRow3 + 0.07)], i, 1, denom2 - 1], k, 0.1, If[val2 ≥ 5, 0.9, Element[Position, ceil(val2)]], 0.2) → rect2div1
  27. Sequence(Sequence[Segment[(k - 0.09 + (0.18 / denom2 * i), yRow4 - 0.07), (k - 0.09 + (0.18 / denom2 * i), yRow4 + 0.07)], i, 1, denom2 - 1], k, 0.1, If[val2 ≥ 10, 0.9, Element[Position, ceil(val2)]], 0.2) → rect2div2
  28. Sequence(Polygon[Translate[(Element[Position, 1], 0) + (-0.09, yRow4 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow4 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow4 + 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (-0.09, yRow4 + 0.07), Vector[(0, 0), (i, 0)]]], i, 0, Element[Position, If[val2 ≤ 10, ceil(val2), 10]], 0.2) → rect2outline2Seq
  29. Sequence(Polygon[Translate[(Element[Position, 1], 0) + (-0.09, yRow4 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow4 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow4 + 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (-0.09, yRow4 + 0.07), Vector[(0, 0), (i, 0)]]], i, 0, Element[Position, If[val2 ≤ 10, floor(val2), 10]], 0.2) → rect2shade2Seq
  30. Polygon((x(Center2) - 0.09, y(Center2) - 0.07), (x(Center2) - 0.09 + (0.18 * (val2 - floor(val2))), y(Center2) - 0.07), (x(Center2) - 0.09 + (0.18 * (val2 - floor(val2))), y(Center2) + 0.07), (x(Center2) - 0.09, y(Center2) + 0.07)) → rect2shadePartial, l, p, q, r
  31. Sequence(Polygon[Translate[(Element[Position, 1], 0) + (-0.09, yRow3 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow3 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow3 + 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (-0.09, yRow3 + 0.07), Vector[(0, 0), (i, 0)]]], i, 0, Element[Position, If[val2 ≤ 4, ceil(val2), 5]], 0.2) → rect2outline1Seq
  32. Sequence(Polygon[Translate[(Element[Position, 1], 0) + (-0.09, yRow3 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow3 - 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (0.09, yRow3 + 0.07), Vector[(0, 0), (i, 0)]], Translate[(Element[Position, 1], 0) + (-0.09, yRow3 + 0.07), Vector[(0, 0), (i, 0)]]], i, 0, Element[Position, If[val2 ≤ 5, floor(val2), 5]], 0.2) → rect2shade1Seq
  33. Segment((0, 0.285), (-20, 0.285)) → dividerHoriz1
  34. Segment((0, -0.08), (-20, -0.08)) → dividerHoriz2

AI 绘图提示语参考

画两个并排的面积模型,每个模型由一个圆和两行矩形组成,圆按分母等分并用扇形显示假分数的整数部分与余数,矩形按单位宽度排列,整数部分整体填色,余数部分按比例局部着色;圆周上用同心圆点阵表示单位,矩形内用垂直分割线标出分母份额;两模型之间用水平线分隔,整体呈现两个假分数的大小、加减关系及带分数转换。
以上提示语为根据原始绘图命令整理而来,仅供参考。