Calculating Volume with Invisible Cubes
Loading the math board and drawing, please wait…
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
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}Take(allRandomSeeds, randIndex, randIndex + numRandoms - 1) → currentRandomSeedsTextfield(input1) → InputBox1Polygon(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)}]) → borderBoxCorner(5) → layoutAppSizeElement({If[layoutX ≟ 16, layoutX - 5, 11], layoutX - 5}, layoutCase) → layoutHintSolnXPolygon((0, 0, -1), (randomNum1, 0, -1), (randomNum1, randomNum2, -1), (0, randomNum2, -1)) → basePoly, edge1a, edge2a, edge3a, edge4aPrism(basePoly, randomNum3) → startPrism, PointPrism1, edge1, edge2, edge3, edge4, edgeCD, edgeDE, edgeEF, edgeCF, PointPrism2, PointPrism3, PointPrism4, face1, face3, face4, face2, faceCDEFCube(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, faceGHIJFlatten(Sequence[Sequence[Sequence[(p1, p2, p3), p1, 0, randomNum1 - 1], p2, 0, randomNum2 - 1], p3, 0, randomNum3 - 1]) → cubePointsZip(Translate[startCube, Vector[(0, 0, 0), n]], n, cubePoints) → cubeOutlinesSequence(Segment[(randomNum1, a, -1), (randomNum1, a, -0.7)], a, 1, randomNum2 - 1) → segmentFBSequence(Segment[(randomNum1, 0, a), (randomNum1, 0.3, a)], a, 0, randomNum3 - 2) → segmentFLSequence(Segment[(randomNum1, randomNum2, a), (randomNum1, randomNum2 - 0.3, a)], a, 0, randomNum3 - 2) → segmentFRSequence(Segment[(randomNum1, a, randomNum3 - 1), (randomNum1, a, randomNum3 - 1.3)], a, 1, randomNum2 - 1) → segmentFTSequence(Segment[(a, randomNum2, -1), (a, randomNum2, -0.7)], a, 1, randomNum1 - 1) → segmentSBSequence(Segment[(randomNum1, randomNum2, a), (randomNum1 - 0.3, randomNum2, a)], a, 0, randomNum3 - 2) → segmentSLSequence(Segment[(0, randomNum2, a), (0.3, randomNum2, a)], a, 0, randomNum3 - 2) → segmentSRSequence(Segment[(a, randomNum2, randomNum3 - 1), (a, randomNum2, randomNum3 - 1.3)], a, 1, randomNum1 - 1) → segmentSTSequence(Segment[(0, a, randomNum3 - 1), (0.3, a, randomNum3 - 1)], a, 1, randomNum2 - 1) → segmentTBSequence(Segment[(randomNum1, a, randomNum3 - 1), (randomNum1 - 0.3, a, randomNum3 - 1)], a, 1, randomNum2 - 1) → segmentTFSequence(Segment[(a, 0, randomNum3 - 1), (a, 0.3, randomNum3 - 1)], a, 1, randomNum1 - 1) → segmentTLSequence(Segment[(a, randomNum2, randomNum3 - 1), (a, randomNum2 - 0.3, randomNum3 - 1)], a, 1, randomNum1 - 1) → segmentTRCornerThreeD(-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.