可视化加法交换律:瓶子弹珠交互演示

可视化加法交换律:瓶子弹珠交互演示
几何画板及绘图内容加载中,请稍等……
2023-06-22 18:32
本范例通过将蓝色和粉色弹珠分别装入两个透明瓶子,直观演示加法交换律(a+b=b+a)。核心数学概念是加法的交换性质,即交换加数位置和不变。构造要点:使用Translate命令平移弹珠位置,Flatten命令整理坐标点,Zip命令生成弹珠集合,If命令控制条件显示,通过Corner、PointToPixels实现自适应布局,并用Text命令显示动态方程。瓶子高度(jarHeight)、宽度(jarWidth)、弹珠数量(numBlue、numPink)等参数均可调整。适合四至五年级学生理解交换律与结合律,也可用于教师示范加法基本性质。

GeoGebra 命令及参数

  1. Flatten(Sequence[Sequence[Jar1Start + ((k * marbleWidth), (j * marbleWidth)), k, 0, floor(jarWidth / marbleWidth) - 2], j, 0, floor(jarHeight / marbleWidth) - 2]) → allJar1Points
  2. Translate(allJar1Points, Vector[Jar1Start, Jar1Start + (jarWidth + spaceBetween, 0)]) → allJar2Points
  3. Take(allJar1Points, 1, numPink) → jar1PinkPoints
  4. Take(allJar1Points, numPink + 1, numPink + numBlue) → jar1BluePoints
  5. Zip(Translate[marbleBlue, Vector[imgStart, A]], A, jar1BluePoints) → jar1MarblesBlue
  6. Zip(Translate[marblePink, Vector[imgStart, A]], A, jar1PinkPoints) → jar1MarblesPink
  7. Take(allJar2Points, numBlue + 1, numPink + numBlue) → jar2PinkPoints
  8. Take(allJar2Points, 1, numBlue) → jar2BluePoints
  9. Zip(Translate[marbleBlue, Vector[imgStart, A]], A, jar2BluePoints) → jar2MarblesBlue
  10. Zip(Translate[marblePink, Vector[imgStart, A]], A, jar2PinkPoints) → jar2MarblesPink
  11. Flatten(Sequence[Sequence[pinkTopStart + ((k * marbleWidth), ((-j) * marbleWidth)), k, 0, 7], j, 0, 1]) → pinkTopPoints
  12. Flatten(Sequence[Sequence[blueTopStart + ((k * marbleWidth), ((-j) * marbleWidth)), k, 0, 7], j, 0, 1]) → blueTopPoints
  13. Zip(Translate[marblePink, Vector[imgStart, A]], A, Take[pinkTopPoints, 1, numPink]) → topMarblesPink
  14. Zip(Translate[marbleBlue, Vector[imgStart, A]], A, Take[blueTopPoints, 1, numBlue]) → topMarblesBlue
  15. Corner(5) → appSize
  16. Zip(Vector[A, B], A, Take[pinkTopPoints, 1, numPink], B, jar1PinkPoints) → jar1PinkVectors
  17. Zip(Vector[A, B], A, Take[pinkTopPoints, 1, numPink], B, jar2PinkPoints) → jar2PinkVectors
  18. Zip(Vector[A, B], A, Take[blueTopPoints, 1, numBlue], B, jar1BluePoints) → jar1BlueVectors
  19. Zip(Vector[A, B], A, Take[blueTopPoints, 1, numBlue], B, jar2BluePoints) → jar2BlueVectors
  20. If(animateEquation ≤ 1, animateEquation, 1) → animateJar1Pink
  21. If(animateEquation ≤ 1, 0, If[1 < animateEquation < 2, animateEquation - 1, 1]) → animateJar1Blue
  22. If(animateEquation ≤ 2, 0, If[2 < animateEquation < 3, animateEquation - 2, 1]) → animateJar2Blue
  23. If(animateEquation ≤ 3, 0, If[3 < animateEquation < 4, animateEquation - 3, 1]) → animateJar2Pink
  24. Zip(Translate[B, A], B, topMarblesBlue, A, (animateJar1Blue * jar1BlueVectors)) → jar1BlueMarblesMoving
  25. Zip(Translate[B, A], B, topMarblesPink, A, (animateJar1Pink * jar1PinkVectors)) → jar1PinkMarblesMoving
  26. Zip(Translate[B, A], B, topMarblesPink, A, (animateJar2Pink * jar2PinkVectors)) → jar2PinkMarblesMoving
  27. Zip(Translate[B, A], B, topMarblesBlue, A, (animateJar2Blue * jar2BlueVectors)) → jar2BlueMarblesMoving
  28. If(animateEquation ≥ 1, (((("\textbf\textcolor{" * colorPink) * "}{") * numPink) * "}"), "") → textNum1
  29. If(animateEquation ≥ 2, (((("\textbf\textcolor{" * colorMarble2) * "}{") * numBlue) * "}"), "") → textNum2
  30. If(animateEquation ≥ 3, (((("\textbf\textcolor{" * colorMarble2) * "}{") * numBlue) * "}"), "") → textNum3
  31. If(animateEquation ≥ 4, (((("\textbf\textcolor{" * colorPink) * "}{") * numPink) * "}"), "") → textNum4
  32. If(animateEquation > 1, "\text{ + }", "") → textPlus1
  33. If(animateEquation > 3, "\text{ + }", "") → textPlus2
  34. If(animateEquation > 2, "\text{ = }", "") → textEqual
  35. Text("=", pointJarStart + (jarWidth + spaceBetween / 2, jarHeight / 2), true, true, 0, 0) → textEquals
  36. PointToPixels(Corner[1], Corner[3], Corner[5], midPoint) → midPointPixels

AI 绘图提示语参考

创建一个交互式示例,展示加法的交换律。有两个透明的玻璃罐,每个罐中装有不同的蓝色和粉色弹珠。通过平移和旋转操作,将弹珠从一个罐移动到另一个罐,同时显示弹珠数量的动态方程,如“3 + 4 = 4 + 3”。调整弹珠的数量和玻璃罐的大小,以适应不同年级的学生。
以上提示语为根据原始绘图命令整理而来,仅供参考。