Pyramid Volume Demonstration
Loading the math board and drawing, please wait…
This example demonstrates the formula for the volume of a pyramid: the volume is one third of the base area times the height. By constructing a pyramid and changing the base and height, the volume change is visually demonstrated. Commands used include If, Translate, Intersect, Pyramid, Dilate, Polygon, etc. Suitable for middle school and above students learning solid geometry.
GeoGebra Commands & Parameters
If(s ≤ 0, (-s), 0) → s2If(s ≥ 0, s, 0) → s1Translate(C, Vector[B, D]) → C'Intersect(OrthogonalPlane[B, Segment[A, C]], Line[A, C]) → GTranslate(A, Vector[B, D]) → A'Intersect(OrthogonalPlane[B, Segment[A, C]], Line[A', C']) → HIntersect(OrthogonalPlane[C, Segment[A, B]], Line[A', D]) → FIntersect(OrthogonalPlane[C, Segment[A, B]], Line[A, B]) → ETranslate(Rotate[Translate[Rotate[C, (α * s1), Segment[A, B]], Vector[(s1 * Vector[(0, 0, 0), (0, z(D), 0)])]], ((-β) * s2), Segment[A, C]], Vector[(s2 / 2 * Vector[(0, 0, 0), (z(D), 0, 0)])]) → LTranslate(Rotate[Translate[Rotate[Polygon[A, D, A'], (α * s1), Segment[A, B]], Vector[(s1 * Vector[(0, 0, 0), (0, z(D), 0)])]], ((-β) * s2), Segment[A, C]], Vector[(s2 / 2 * Vector[(0, 0, 0), (z(D), 0, 0)])]) → poly2Pyramid(Polygon[A, B, C], D) → a, faceABD, faceBCD, faceACD_1, edgeAD, edgeBD, edgeCD_1Translate(Rotate[Translate[Rotate[D, (α * s1), Segment[A, B]], Vector[(s1 * Vector[(0, 0, 0), (0, z(D), 0)])]], ((-β) * s2), Segment[A, C]], Vector[(s2 / 2 * Vector[(0, 0, 0), (z(D), 0, 0)])]) → KTranslate(Rotate[Translate[Rotate[Polygon[A, C, A'], (α * s1), Segment[A, B]], Vector[(s1 * Vector[(0, 0, 0), (0, z(D), 0)])]], ((-β) * s2), Segment[A, C]], Vector[(s2 / 2 * Vector[(0, 0, 0), (z(D), 0, 0)])]) → poly3Pyramid(Polygon[A', D, C'], C) → b, faceA'CD_1, faceCC'D, faceA'CC', edgeA'C_1, edgeCD_2, edgeCC'Translate(Translate[Rotate[a, (α * s1), Segment[A, B]], Vector[(s1 * Vector[(0, 0, 0), (0, z(D), 0)])]], Vector[(o2 * Vector[A, B])]) → a'Pyramid(Polygon[A, D, A'], C) → c, faceACD, faceA'CD, faceAA'C, edgeAC, edgeCD, edgeA'CTranslate(Rotate[c, (α * s1), Segment[A, B]], Vector[(s1 * Vector[(0, 0, 0), (0, z(D), 0)])]) → c'Translate(Rotate[Translate[b, Vector[(o1 * Vector[A, C])]], (s1 * α), Segment[A, B]], Vector[(s1 * Vector[(0, 0, 0), (0, z(D), 0)])]) → b'Translate(Rotate[a', ((-β) * s2), Segment[A, C]], Vector[(s2 / 2 * Vector[(0, 0, 0), (z(D), 0, 0)])]) → a''Translate(Rotate[b', ((-β) * s2), Segment[A, C]], Vector[(s2 / 2 * Vector[(0, 0, 0), (z(D), 0, 0)])]) → b''Translate(Rotate[c', ((-β) * s2), Segment[A, C]], Vector[(s2 / 2 * Vector[(0, 0, 0), (z(D), 0, 0)])]) → c''Translate(Rotate[Translate[Translate[Rotate[Polygon[A, B, D], (α * s1), Segment[A, B]], Vector[(s1 * Vector[(0, 0, 0), (0, z(D), 0)])]], Vector[(o2 * Vector[A, B])]], ((-β) * s2), Segment[A, C]], Vector[(s2 / 2 * Vector[(0, 0, 0), (z(D), 0, 0)])]) → poly1Translate(Rotate[Translate[Translate[Rotate[C, (α * s1), Segment[A, B]], Vector[(s1 * Vector[(0, 0, 0), (0, z(D), 0)])]], Vector[(o2 * Vector[A, B])]], ((-β) * s2), Segment[A, C]], Vector[(s2 / 2 * Vector[(0, 0, 0), (z(D), 0, 0)])]) → IDilate(poly2, 1 - h, L) → poly2'Dilate(poly1, 1 - h, I) → poly1'Translate(Rotate[Translate[Rotate[Translate[Polygon[A', C, C'], Vector[(o1 * Vector[A, C])]], (s1 * α), Segment[A, B]], Vector[(s1 * Vector[(0, 0, 0), (0, z(D), 0)])]], ((-β) * s2), Segment[A, C]], Vector[(s2 / 2 * Vector[(0, 0, 0), (z(D), 0, 0)])]) → poly4Translate(Rotate[Translate[Rotate[Translate[D, Vector[(o1 * Vector[A, C])]], (s1 * α), Segment[A, B]], Vector[(s1 * Vector[(0, 0, 0), (0, z(D), 0)])]], ((-β) * s2), Segment[A, C]], Vector[(s2 / 2 * Vector[(0, 0, 0), (z(D), 0, 0)])]) → JDilate(poly3, 1 - h, K) → poly3'Dilate(poly4, 1 - h, J) → poly4'Polygon((-6, -6), (6, -6), (6, 6), (-6, 6)) → poly5, d, e, f, g