randFromArray(metricUnits) "\\text{ " + UNIT_SMALL + "}"
randRangeUnique(2,8,3) DIMENSIONS[0] DIMENSIONS[1] DIMENSIONS[2] max(max(LENGTH, WIDTH), HEIGHT) LENGTH/MAX WIDTH/MAX HEIGHT/MAX "#D7ED3A" "#38C77F" "#78D0EF" "#F0B63A" HEIGHT * 2 [ [LENGTH/MAX, WIDTH/MAX, HEIGHT/MAX], [LENGTH/MAX, WIDTH/MAX, -HEIGHT/MAX], [LENGTH/MAX, -WIDTH/MAX, -HEIGHT/MAX], [LENGTH/MAX, -WIDTH/MAX, HEIGHT/MAX], [-LENGTH/MAX, WIDTH/MAX, HEIGHT/MAX], [-LENGTH/MAX, WIDTH/MAX, -HEIGHT/MAX], [-LENGTH/MAX, -WIDTH/MAX, -HEIGHT/MAX], [-LENGTH/MAX, -WIDTH/MAX, HEIGHT/MAX] ] 4.0 [ { verts: [3, 2, 1, 0], color: COLOR1, labels: [[[XBORD, 0, ZBORD], WIDTH + UNIT_TEXT]] }, { verts: [4, 5, 6, 7], color: COLOR1, labels: [[[-XBORD, 0, -ZBORD],WIDTH + UNIT_TEXT]] }, { verts: [0, 1, 5, 4], color: COLOR3, labels: [[[-XBORD, YBORD, 0], HEIGHT + UNIT_TEXT]] }, { verts: [2, 3, 7, 6], color: COLOR3, labels: [[[-XBORD, -YBORD, 0], HEIGHT + UNIT_TEXT]] }, { verts: [1, 2, 6, 5], color: COLOR2, labels: [[[0, -YBORD, -ZBORD], LENGTH + UNIT_TEXT]] }, { verts: [3, 0, 4, 7], color: COLOR2, labels: [[[0, YBORD, ZBORD], LENGTH + UNIT_TEXT]] } ] [ { verts: [8,9,10,11], color: "#A9A9A9" }, { verts: [12,13,14,15], color: "#A9A9A9" } ]

What is the volume of this rectangular prism? Drag on the rectangular prism to rotate it.

init({range: [[-2, 2], [-2, 2]], scale: [100, 100]}); addMouseLayer(); //Adding verticies for the slabs for (var i = 1; i < HEIGHT;i++ ){ VERTICES.push( [LENGTH/MAX,WIDTH/MAX,(-HEIGHT+2*i)/MAX]); VERTICES.push([-LENGTH/MAX,WIDTH/MAX,(-HEIGHT+2*i)/MAX]); VERTICES.push([-LENGTH/MAX,-WIDTH/MAX,(-HEIGHT+2*i)/MAX]); VERTICES.push([LENGTH/MAX,-WIDTH/MAX,(-HEIGHT+2*i)/MAX]); }; //Adding verticies for the cubes in one slab for (var i = 1; i < LENGTH; i++ ){ VERTICES.push( [(-LENGTH+2*i)/MAX,-WIDTH/MAX,(-HEIGHT)/MAX]); }; for (var i = 1; i < LENGTH; i++ ){ VERTICES.push( [(-LENGTH+2*i)/MAX,WIDTH/MAX,(-HEIGHT)/MAX]); }; for (var i = 1; i < WIDTH; i++ ){ VERTICES.push( [(-LENGTH)/MAX,(-WIDTH+2*i)/MAX,(-HEIGHT)/MAX]); }; for (var i = 1; i < WIDTH; i++ ){ VERTICES.push( [(LENGTH)/MAX,(-WIDTH+2*i)/MAX,(-HEIGHT)/MAX]); }; for (var i = 1; i < LENGTH; i++ ){ VERTICES.push( [(-LENGTH+2*i)/MAX,-WIDTH/MAX,(-HEIGHT+2)/MAX]); }; for (var i = 1; i < LENGTH; i++ ){ VERTICES.push( [(-LENGTH+2*i)/MAX,WIDTH/MAX,(-HEIGHT+2)/MAX]); }; for (var i = 1; i < WIDTH; i++ ){ VERTICES.push( [(-LENGTH)/MAX,(-WIDTH+2*i)/MAX,(-HEIGHT+2)/MAX]); }; for (var i = 1; i < WIDTH; i++ ){ VERTICES.push( [(LENGTH)/MAX,(-WIDTH+2*i)/MAX,(-HEIGHT+2)/MAX]); }; // graphing the initial object graph.obj = make3dObject(VERTICES, { scale: SCALE }); _.each(FACES, function(face) { graph.obj.addFace(face); }); graph.obj.setPos([0, 0, 5]); graph.obj.rotate(1,0 , 0, PI/3); graph.obj.rotate(0, 1, 0, 0); graph.obj.rotate(0, 0, 1, PI/8); graph.obj.doDraw(); var spinner; setTimeout(function() { spinner = setInterval(function() { graph.obj.rotate(0, 0, 1, 0.01); graph.obj.doDraw(); }, 50); }, 300); var mouseTarget = mouselayer.rect(0, 0, 400, 400).attr({ fill: "#000", opacity: 0.0 }); $(mouseTarget[0]).bind("vmousedown", function(event) { event.preventDefault(); graph.lastX = event.pageX; graph.lastY = event.pageY; clearInterval(spinner); $(document).bind("vmousemove vmouseup", function(event) { event.preventDefault(); var dx = (event.pageX - graph.lastX) / 200 * PI; var dy = (event.pageY - graph.lastY) / 200 * PI; graph.lastX = event.pageX; graph.lastY = event.pageY; var xAxis = normalize(graph.obj.perspective[1]); var yAxis = normalize(graph.obj.perspective[0]); graph.obj.rotate(xAxis[0], xAxis[1], xAxis[2], -dx / 2); graph.obj.rotate(yAxis[0], yAxis[1], yAxis[2], -dy / 2); graph.obj.doDraw(); if (event.type === "vmouseup") { $(document).unbind("vmousemove vmouseup"); } }) });

LENGTH*WIDTH*HEIGHT cubic UNIT_SMALL

The volume of a shape is measured by the number of one UNIT cubes which make up the shape.

To make counting the cubes easier, break the rectangular prism into `HEIGHT` slabs which are each `WIDTH UNIT_TEXT` wide, `LENGTH UNIT_TEXT` long, and `1 UNIT_TEXT` high.

for (var i = 0; i<HEIGHT-1;i++){ graph.obj.addSketch({ verts: [8+4*i,9+4*i,10+4*i,11+4*i,8+4*i]}); }; graph.obj.doDraw();

Each slab has `WIDTH` rows containing `LENGTH` cubes, so there are `WIDTH \times LENGTH = WIDTH*LENGTH` cubes in each slab.

var start = 8+4*(HEIGHT-1)-1 // bottom length for (var i = 1; i<LENGTH;i++){ graph.obj.addSketch({ verts: [start+i, start+LENGTH+i-1], opacityValue: 0.5}); }; // bottom width start = start+2*(LENGTH-1); for (var i = 1; i<WIDTH;i++){ graph.obj.addSketch({ verts: [start+i, start+WIDTH+i-1], opacityValue: 0.5}); }; // top length start = start+2*(WIDTH-1); for (var i = 1; i<LENGTH;i++){ graph.obj.addSketch({ verts: [start+i, start+LENGTH+i-1]}); }; // top length start = start+2*(LENGTH-1); for (var i = 1; i<WIDTH;i++){ graph.obj.addSketch({ verts: [start+i, start+WIDTH+i-1]}); }; // sides start = 8+4*(HEIGHT-1)-1 for (var i = 1; i<2*LENGTH+2*WIDTH-3;i++){ graph.obj.addSketch({ verts: [start+i, start+2*LENGTH-2+2*WIDTH-2+i], opacityValue: 0.5}); }; // corners and top edges graph.obj.addSketch({ verts: [1, 2,6,5,1], opacityValue: 0.5}); graph.obj.addSketch({ verts: [1, 8], opacityValue: 0.5}); graph.obj.addSketch({ verts: [2, 11], opacityValue: 0.5}); graph.obj.addSketch({ verts: [5, 9], opacityValue: 0.5}); graph.obj.addSketch({ verts: [6, 10], opacityValue: 0.5}); graph.obj.addSketch({ verts: [8, 9,10,11,8], opacityValue: 0.5}); graph.obj.doDraw();

Since there are `WIDTH*LENGTH` cubes in each slab, there are a total of `HEIGHT \times WIDTH*LENGTH = HEIGHT*WIDTH*LENGTH` cubes in the whole rectangular prism.

Since each cube is a cubic UNIT, the volume of the rectangular prism is `HEIGHT*WIDTH*LENGTH UNIT_TEXT^3`

randRangeUnique(2,8,3) DIMENSIONS[0] DIMENSIONS[1] DIMENSIONS[2] max(max(LENGTH, WIDTH), HEIGHT) LENGTH/MAX WIDTH/MAX HEIGHT/MAX "#D7ED3A" "#38C77F" "#78D0EF" "#F0B63A" HEIGHT * 2 [ [LENGTH/MAX, WIDTH/MAX, HEIGHT/MAX], [LENGTH/MAX, WIDTH/MAX, -HEIGHT/MAX], [LENGTH/MAX, -WIDTH/MAX, -HEIGHT/MAX], [LENGTH/MAX, -WIDTH/MAX, HEIGHT/MAX], [-LENGTH/MAX, WIDTH/MAX, HEIGHT/MAX], [-LENGTH/MAX, WIDTH/MAX, -HEIGHT/MAX], [-LENGTH/MAX, -WIDTH/MAX, -HEIGHT/MAX], [-LENGTH/MAX, -WIDTH/MAX, HEIGHT/MAX] ] 4.0 [ { verts: [3, 2, 1, 0], color: COLOR1, labels: [[[XBORD, 0, ZBORD], WIDTH + UNIT_TEXT]] }, { verts: [4, 5, 6, 7], color: COLOR1, labels: [[[-XBORD, 0, -ZBORD],WIDTH + UNIT_TEXT]] }, { verts: [0, 1, 5, 4], color: COLOR3, labels: [[[-XBORD, YBORD, 0], "x" + UNIT_TEXT]] }, { verts: [2, 3, 7, 6], color: COLOR3, labels: [[[-XBORD, -YBORD, 0], "x" + UNIT_TEXT]] }, { verts: [1, 2, 6, 5], color: COLOR2, labels: [[[0, -YBORD, -ZBORD], LENGTH + UNIT_TEXT]] }, { verts: [3, 0, 4, 7], color: COLOR2, labels: [[[0, YBORD, ZBORD], LENGTH + UNIT_TEXT]] } ] [ {verts: [8,9,10,11], color: "#A9A9A9"}, {verts: [12,13,14,15], color: "#A9A9A9"} ]

The volume of this rectangular prism is `LENGTH*WIDTH*HEIGHT` cubic units. What is the number labeled `x` below?

init({range: [[-2, 2], [-2, 2]], scale: [100, 100]}); addMouseLayer(); //Adding verticies for the slabs for (var i = 1; i < HEIGHT;i++ ){ VERTICES.push( [LENGTH/MAX,WIDTH/MAX,(-HEIGHT+2*i)/MAX]); VERTICES.push([-LENGTH/MAX,WIDTH/MAX,(-HEIGHT+2*i)/MAX]); VERTICES.push([-LENGTH/MAX,-WIDTH/MAX,(-HEIGHT+2*i)/MAX]); VERTICES.push([LENGTH/MAX,-WIDTH/MAX,(-HEIGHT+2*i)/MAX]); }; //Adding verticies for the cubes in one slab for (var i = 1; i < LENGTH; i++ ){ VERTICES.push( [(-LENGTH+2*i)/MAX,-WIDTH/MAX,(-HEIGHT)/MAX]); }; for (var i = 1; i < LENGTH; i++ ){ VERTICES.push( [(-LENGTH+2*i)/MAX,WIDTH/MAX,(-HEIGHT)/MAX]); }; for (var i = 1; i < WIDTH; i++ ){ VERTICES.push( [(-LENGTH)/MAX,(-WIDTH+2*i)/MAX,(-HEIGHT)/MAX]); }; for (var i = 1; i < WIDTH; i++ ){ VERTICES.push( [(LENGTH)/MAX,(-WIDTH+2*i)/MAX,(-HEIGHT)/MAX]); }; for (var i = 1; i < LENGTH; i++ ){ VERTICES.push( [(-LENGTH+2*i)/MAX,-WIDTH/MAX,(-HEIGHT+2)/MAX]); }; for (var i = 1; i < LENGTH; i++ ){ VERTICES.push( [(-LENGTH+2*i)/MAX,WIDTH/MAX,(-HEIGHT+2)/MAX]); }; for (var i = 1; i < WIDTH; i++ ){ VERTICES.push( [(-LENGTH)/MAX,(-WIDTH+2*i)/MAX,(-HEIGHT+2)/MAX]); }; for (var i = 1; i < WIDTH; i++ ){ VERTICES.push( [(LENGTH)/MAX,(-WIDTH+2*i)/MAX,(-HEIGHT+2)/MAX]); }; // graphing the initial object graph.obj = make3dObject(VERTICES, { scale: SCALE }); _.each(FACES, function(face) { graph.obj.addFace(face); }); graph.obj.setPos([0, 0, 5]); graph.obj.rotate(1,0 , 0, PI/3); graph.obj.rotate(0, 1, 0, 0); graph.obj.rotate(0, 0, 1, PI/8); graph.obj.doDraw(); var spinner; setTimeout(function() { spinner = setInterval(function() { graph.obj.rotate(0, 0, 1, 0); graph.obj.doDraw(); }, 50); }, 300); var mouseTarget = mouselayer.rect(0, 0, 400, 400).attr({ fill: "#000", opacity: 0.0 }); $(mouseTarget[0]).bind("vmousedown", function(event) { graph.lastX = event.pageX; graph.lastY = event.pageY; clearInterval(spinner); $(document).bind("vmousemove vmouseup", function(event) { event.preventDefault(); var dx = (event.pageX - graph.lastX) / 200 * PI; var dy = (event.pageY - graph.lastY) / 200 * PI; graph.lastX = event.pageX; graph.lastY = event.pageY; var xAxis = normalize(graph.obj.perspective[1]); var yAxis = normalize(graph.obj.perspective[0]); graph.obj.rotate(xAxis[0], xAxis[1], xAxis[2], -dx / 2); graph.obj.rotate(yAxis[0], yAxis[1], yAxis[2], -dy / 2); graph.obj.doDraw(); if (event.type === "vmouseup") { $(document).unbind("vmousemove vmouseup"); } }) });

HEIGHT UNIT_SMALL

The volume of the `LENGTH UNIT_TEXT \times WIDTH UNIT_TEXT \times 1 UNIT_TEXT` slab pictured above is `LENGTH*WIDTH UNIT_TEXT^3` since there are `LENGTH` rows of `WIDTH` cubic plural_form(UNIT).

var start = 8+4*(HEIGHT-1)-1 // bottom length for (var i = 1; i<LENGTH;i++){ graph.obj.addSketch({ verts: [start+i, start+LENGTH+i-1], opacityValue: 0.5}); }; // bottom width start = start+2*(LENGTH-1); for (var i = 1; i<WIDTH;i++){ graph.obj.addSketch({ verts: [start+i, start+WIDTH+i-1], opacityValue: 0.5}); }; // top length start = start+2*(WIDTH-1); for (var i = 1; i<LENGTH;i++){ graph.obj.addSketch({ verts: [start+i, start+LENGTH+i-1]}); }; // top length start = start+2*(LENGTH-1); for (var i = 1; i<WIDTH;i++){ graph.obj.addSketch({ verts: [start+i, start+WIDTH+i-1]}); }; // sides start = 8+4*(HEIGHT-1)-1 for (var i = 1; i<2*LENGTH+2*WIDTH-3;i++){ graph.obj.addSketch({ verts: [start+i, start+2*LENGTH-2+2*WIDTH-2+i], opacityValue: 0.5}); }; // corners and top edges graph.obj.addSketch({ verts: [1, 2,6,5,1], opacityValue: 0.5}); graph.obj.addSketch({ verts: [1, 8], opacityValue: 0.5}); graph.obj.addSketch({ verts: [2, 11], opacityValue: 0.5}); graph.obj.addSketch({ verts: [5, 9], opacityValue: 0.5}); graph.obj.addSketch({ verts: [6, 10], opacityValue: 0.5}); graph.obj.addSketch({ verts: [8, 9,10,11,8], opacityValue: 0.5}); graph.obj.doDraw();

Since the slabs have a height of `1` UNIT, `x` is the number of these slabs which fill up the whole rectangular prism.

We can figure out the number of slabs needed by seeing how many times `LENGTH*WIDTH` goes into `LENGTH*WIDTH*HEIGHT`

So `x = LENGTH*WIDTH*HEIGHT \div LENGTH*WIDTH`

Thus `x = HEIGHT`

for (var i = 0; i < HEIGHT - 1; i++){ graph.obj.addSketch({ verts: [8+4*i,9+4*i,10+4*i,11+4*i,8+4*i]}); }; graph.obj.doDraw();