Calculating Volume with Invisible Cubes

Calculating Volume with Invisible Cubes
Loading the math board and drawing, please wait…
2023-03-18 09:19
This GeoGebra activity demonstrates how to calculate the volume of prisms using invisible cubic units, encouraging students to develop patterns for finding volume without counting each unit cube. It focuses on the mathematical concepts of volume measurement, cubic units, and the volume formula for prisms (length × width × height or base area × height). The construction uses commands such as RandomUniform to generate random dimensions, Prism and Cube to build 3D solids, Textfield and InputBox for student responses, and Sequence, Zip, and CornerThreeD to manage random seeds and validation logic. It is designed for grades 4-5, suitable for classroom practice or independent exploration, helping students transition from concrete counting to abstract formula-based reasoning.

GeoGebra Commands & Parameters

  1. RandomUniform(0, 0.99, 200) → allRandomSeeds, {0.1985571235238883, 0.3747460724081399, 0.8201023415293685, 0.413941026343629, 0.9580610092118979, 0.9532396596321169, 0.40903753117592906, 0.8689044514022999, 0.9677671245463821, 0.9248155795513775, 0.22079165652016206, 0.8843200579033657, 0.4032992895551073, 0.0015681815436908609, 0.08038008650236657, 0.29409635413929663, 0.4148793148887635, 0.4460118103389175, 0.22964906666612092, 0.12579896732996187, 0.14186804022180113, 0.21335602119014882, 0.08624711608203661, 0.5604600589825768, 0.8303637266917386, 0.802244118154383, 0.9575371195840408, 0.2584650457890849, 0.4170062032779738, 0.053077092533620585, 0.949603196260776, 0.4638565083370723, 0.10450721393377367, 0.5472149775314659, 0.07434936411556867, 0.6327837752421652, 0.7252387981454076, 0.46045482201497484, 0.7339656328177513, 0.24615253084824062, 0.4584588989102166, 0.140229658544052, 0.2717540673985659, 0.9017932675844289, 0.9044397678435976, 0.8679550544036241, 0.4014618084846333, 0.06766749472845958, 0.47488663098397227, 0.13587006288895706, 0.10385984693741061, 0.8347702182718699, 0.5435959312618279, 0.3215763668669794, 0.9193353555523798, 0.9464628550588227, 0.5342994358288029, 0.33327477990708443, 0.8487325809130822, 0.9599846069427432, 0.21407657158592724, 0.9244303898028499, 0.1315812931383337, 0.4958413794753706, 0.5305905092620262, 0.1982677195198501, 0.9011935832521802, 0.45166029271430064, 0.34971348973526156, 0.1801044268709735, 0.6298895642712049, 0.788923386166371, 0.6668555789901136, 0.129077520472109, 0.9348284730803904, 0.8037587587885737, 0.780496207832065, 0.6402979917490262, 0.5055768099475766, 0.38666733179529045, 0.5400410039620908, 0.4138896851743153, 0.7486365996862828, 0.3207032646890486, 0.21218693765249785, 0.16872619576780615, 0.4916858521978765, 0.2332016333355101, 0.8804768108340585, 0.9159738534413164, 0.6412507255357188, 0.3426603288386718, 0.14166003596190438, 0.6307815670705613, 0.8619327897001307, 0.8998352753375969, 0.6798488085814152, 0.8096284245831337, 0.6031564522829401, 0.8104958956900019, 0.12527062806833547, 0.7959468297670473, 0.31068140663775534, 0.5866140054783586, 0.5086648111123792, 0.907684519708866, 0.7648413062247824, 0.6430235895628105, 0.2750571583771809, 0.8674506589156967, 0.37562431889484343, 0.567789500262776, 0.30176960311640716, 0.4788115600837418, 0.8463030787852123, 0.8266617676814388, 0.3750823058705079, 0.7611587111461637, 0.4023508016956722, 0.26506896019869475, 0.9279633175734371, 0.5003668443324203, 0.5608470213054119, 0.44511701797768155, 0.10771745848236566, 0.2431921459096496, 0.9674809219359044, 0.02001165331462279, 0.29727777902072955, 0.7900308618751064, 0.20360179214567567, 0.8742108510318782, 0.17717476385738629, 0.3732654872287096, 0.2645456316452947, 0.184440183511728, 0.746965650652961, 0.486971086817247, 0.9026836152289247, 0.9444673718634056, 0.40509203160076707, 0.008236653148151873, 0.8742924532054477, 0.24523361483459177, 0.14475718276280639, 0.7107759675511467, 0.29843848164742887, 0.7715783195155869, 0.030474806926029916, 0.17786059707461796, 0.038596611916459106, 0.957369114364521, 0.7754389359049524, 0.5539015391190559, 0.45369208212086065, 0.5223635773174239, 0.7438005441331278, 0.6822394545911281, 0.16465715064701453, 0.8265800783164224, 0.03430931317115668, 0.580872823536631, 0.49543699950820413, 0.43134337211745244, 0.3625893252165656, 0.23796073582315264, 0.30365775676850404, 0.31049730815407195, 0.45856587242134966, 0.5349822017158518, 0.19588713682856146, 0.7105402875003487, 0.9432460299078801, 0.8574162577884733, 0.8755719615010006, 0.6246406923556221, 0.6451784488662415, 0.9707267820408741, 0.35832869608720896, 0.24262752318775646, 0.9214785573497183, 0.5632937772436603, 0.69929262627353, 0.12712855810623633, 0.1313035530434435, 0.957727325415719, 0.9706978530116676, 0.1250410609412507, 0.5210967180389424, 0.3677334505016679, 0.28476492628591643, 0.41347193464352655, 0.08079408195864105, 0.08937039040960885, 0.3173142290879695, 0.5601727076223676, 0.41849659539001693, 0.21314154542608715, 0.8413030335415503, 0.8403206196179155}
  2. Take(allRandomSeeds, randIndex, randIndex + numRandoms - 1) → currentRandomSeeds
  3. Textfield(input1) → InputBox1
  4. Polygon(Zip[PixelsToPoint[Corner[1], Corner[3], Corner[5], A], A, {(pixelsLeft, pixelsTop), (pixelsLeft, y(Corner[5]) - pixelsBottom), Corner[5] - (pixelsRight, pixelsBottom), (x(Corner[5]) - pixelsRight, pixelsTop)}]) → borderBox
  5. Corner(5) → layoutAppSize
  6. Element({If[layoutX ≟ 16, layoutX - 5, 11], layoutX - 5}, layoutCase) → layoutHintSolnX
  7. Polygon((0, 0, -1), (randomNum1, 0, -1), (randomNum1, randomNum2, -1), (0, randomNum2, -1)) → basePoly, edge1a, edge2a, edge3a, edge4a
  8. Prism(basePoly, randomNum3) → startPrism, PointPrism1, edge1, edge2, edge3, edge4, edgeCD, edgeDE, edgeEF, edgeCF, PointPrism2, PointPrism3, PointPrism4, face1, face3, face4, face2, faceCDEF
  9. Cube(Polygon[{(0, 0, 0), (0, 1, 0), (1, 1, 0), (1, 0, 0)}], true) → startCube, PointCube1, edge5, edge8, edgeGJ, edgeGH, edge6, edgeHI, edge7, edgeIJ, PointCube2, PointCube3, PointCube4, face6, face5, face7, face8, faceGHIJ
  10. Flatten(Sequence[Sequence[Sequence[(p1, p2, p3), p1, 0, randomNum1 - 1], p2, 0, randomNum2 - 1], p3, 0, randomNum3 - 1]) → cubePoints
  11. Zip(Translate[startCube, Vector[(0, 0, 0), n]], n, cubePoints) → cubeOutlines
  12. Sequence(Segment[(randomNum1, a, -1), (randomNum1, a, -0.7)], a, 1, randomNum2 - 1) → segmentFB
  13. Sequence(Segment[(randomNum1, 0, a), (randomNum1, 0.3, a)], a, 0, randomNum3 - 2) → segmentFL
  14. Sequence(Segment[(randomNum1, randomNum2, a), (randomNum1, randomNum2 - 0.3, a)], a, 0, randomNum3 - 2) → segmentFR
  15. Sequence(Segment[(randomNum1, a, randomNum3 - 1), (randomNum1, a, randomNum3 - 1.3)], a, 1, randomNum2 - 1) → segmentFT
  16. Sequence(Segment[(a, randomNum2, -1), (a, randomNum2, -0.7)], a, 1, randomNum1 - 1) → segmentSB
  17. Sequence(Segment[(randomNum1, randomNum2, a), (randomNum1 - 0.3, randomNum2, a)], a, 0, randomNum3 - 2) → segmentSL
  18. Sequence(Segment[(0, randomNum2, a), (0.3, randomNum2, a)], a, 0, randomNum3 - 2) → segmentSR
  19. Sequence(Segment[(a, randomNum2, randomNum3 - 1), (a, randomNum2, randomNum3 - 1.3)], a, 1, randomNum1 - 1) → segmentST
  20. Sequence(Segment[(0, a, randomNum3 - 1), (0.3, a, randomNum3 - 1)], a, 1, randomNum2 - 1) → segmentTB
  21. Sequence(Segment[(randomNum1, a, randomNum3 - 1), (randomNum1 - 0.3, a, randomNum3 - 1)], a, 1, randomNum2 - 1) → segmentTF
  22. Sequence(Segment[(a, 0, randomNum3 - 1), (a, 0.3, randomNum3 - 1)], a, 1, randomNum1 - 1) → segmentTL
  23. Sequence(Segment[(a, randomNum2, randomNum3 - 1), (a, randomNum2 - 0.3, randomNum3 - 1)], a, 1, randomNum1 - 1) → segmentTR
  24. CornerThreeD(-1, 11) → CurrentViewDirection

AI Drawing Prompt Reference

Draw a prism with random dimensions. Start by drawing the base polygon with randomly generated side lengths, then draw the side and top faces. The side faces consist of a series of rectangles parallel to the base, and the top face is parallel to the base. Make sure all edges and faces are correctly connected to form a complete prism.
The prompt above was compiled from the original drawing commands and is for reference only.