Visualizing Commutative Property of Addition: Marble Jar Interactive Demo

Visualizing Commutative Property of Addition: Marble Jar Interactive Demo
Loading the math board and drawing, please wait…
2023-06-22 18:32
This GeoGebra worksheet demonstrates the commutative property of addition (a+b=b+a) by arranging blue and pink marbles into two transparent jars. Key math concept: commutativity of addition - swapping addends doesn't change the sum. Construction details: Uses Translate command to move marbles, Flatten to organize point coordinates, Zip to generate marble collections, If for conditional display, Corner and PointToPixels for responsive layout, and Text to show dynamic equations. Parameters like jarHeight, jarWidth, numBlue, and numPink are adjustable. Designed for grades 4-5 students learning commutative and associative properties, ideal for teachers demonstrating fundamental addition concepts.

GeoGebra Commands & Parameters

  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 Drawing Prompt Reference

Create an interactive demo to illustrate the commutative property of addition. There are two transparent jars with different colored marbles (blue and pink). Move the marbles from one jar to another using translation and rotation, and display dynamic equations like “3 + 4 = 4 + 3”. Adjust the number of marbles and jar size to suit students of different grades.
The prompt above was compiled from the original drawing commands and is for reference only.