Pyramid Volume Demonstration

Pyramid Volume Demonstration
Loading the math board and drawing, please wait…
2016-09-15 21:35
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

  1. If(s ≤ 0, (-s), 0) → s2
  2. If(s ≥ 0, s, 0) → s1
  3. Translate(C, Vector[B, D]) → C'
  4. Intersect(OrthogonalPlane[B, Segment[A, C]], Line[A, C]) → G
  5. Translate(A, Vector[B, D]) → A'
  6. Intersect(OrthogonalPlane[B, Segment[A, C]], Line[A', C']) → H
  7. Intersect(OrthogonalPlane[C, Segment[A, B]], Line[A', D]) → F
  8. Intersect(OrthogonalPlane[C, Segment[A, B]], Line[A, B]) → E
  9. Translate(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)])]) → L
  10. Translate(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)])]) → poly2
  11. Pyramid(Polygon[A, B, C], D) → a, faceABD, faceBCD, faceACD_1, edgeAD, edgeBD, edgeCD_1
  12. Translate(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)])]) → K
  13. Translate(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)])]) → poly3
  14. Pyramid(Polygon[A', D, C'], C) → b, faceA'CD_1, faceCC'D, faceA'CC', edgeA'C_1, edgeCD_2, edgeCC'
  15. Translate(Translate[Rotate[a, (α * s1), Segment[A, B]], Vector[(s1 * Vector[(0, 0, 0), (0, z(D), 0)])]], Vector[(o2 * Vector[A, B])]) → a'
  16. Pyramid(Polygon[A, D, A'], C) → c, faceACD, faceA'CD, faceAA'C, edgeAC, edgeCD, edgeA'C
  17. Translate(Rotate[c, (α * s1), Segment[A, B]], Vector[(s1 * Vector[(0, 0, 0), (0, z(D), 0)])]) → c'
  18. Translate(Rotate[Translate[b, Vector[(o1 * Vector[A, C])]], (s1 * α), Segment[A, B]], Vector[(s1 * Vector[(0, 0, 0), (0, z(D), 0)])]) → b'
  19. Translate(Rotate[a', ((-β) * s2), Segment[A, C]], Vector[(s2 / 2 * Vector[(0, 0, 0), (z(D), 0, 0)])]) → a''
  20. Translate(Rotate[b', ((-β) * s2), Segment[A, C]], Vector[(s2 / 2 * Vector[(0, 0, 0), (z(D), 0, 0)])]) → b''
  21. Translate(Rotate[c', ((-β) * s2), Segment[A, C]], Vector[(s2 / 2 * Vector[(0, 0, 0), (z(D), 0, 0)])]) → c''
  22. 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)])]) → poly1
  23. Translate(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)])]) → I
  24. Dilate(poly2, 1 - h, L) → poly2'
  25. Dilate(poly1, 1 - h, I) → poly1'
  26. 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)])]) → poly4
  27. Translate(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)])]) → J
  28. Dilate(poly3, 1 - h, K) → poly3'
  29. Dilate(poly4, 1 - h, J) → poly4'
  30. Polygon((-6, -6), (6, -6), (6, 6), (-6, 6)) → poly5, d, e, f, g