Liu Hui's Pyramid Volume Proof

Liu Hui's Pyramid Volume Proof
Loading the math board and drawing, please wait…
2017-07-17 11:47
This example demonstrates Liu Hui's proof method for the volume of pyramids, illustrating the derivation of the volume formula through geometric constructions. Key mathematical concepts include volume calculation, geometric transformations, and the concept of limits. The construction utilizes GeoGebra commands and objects such as Vector, Polygon, Prism, Translate, Midpoint, Rotate, and Sequence as outlined in the summary. It is suitable for high school students and mathematics enthusiasts studying solid geometry and geometric proofs.

GeoGebra Commands & Parameters

  1. Vector((0, 0, 0), (3, 0, 3)) → v
  2. Polygon(A, D, E) → poly1, e, a, d
  3. Prism(poly1, B) → b, F_1, edgeBF, edgeFG, edgeBG, F, faceABFD, faceDEGF, faceABGE, faceBFG, edgeAB, edgeDF, edgeEG
  4. Translate(B, Vector[(s * v)]) → B'
  5. Translate(C, Vector[(s * v)]) → C'
  6. Translate(F, Vector[(s * v)]) → F'
  7. Translate(E, Vector[(s * v)]) → E'
  8. Translate(Pyramid[Polygon[B, C, F], E], Vector[(s * v)]) → c
  9. Translate(Pyramid[Polygon[A, B, C, D], E], Vector[(0 * v)]) → f
  10. Midpoint(A, E) → G
  11. Midpoint(D, E) → H
  12. Midpoint(B, F) → I
  13. Midpoint(C, F) → J
  14. Midpoint(A, B) → K
  15. Midpoint(D, C) → L
  16. Midpoint(E, F) → M
  17. Midpoint(B, C) → N
  18. Midpoint(A, D) → O
  19. Midpoint(M, L) → P
  20. Midpoint(M, K) → Q
  21. Rotate(Prism[Polygon[D, L, P, H], O], 0°, zAxis) → g
  22. Rotate(Prism[Polygon[A, O, G], K], 0°, zAxis) → h
  23. Midpoint(K, L) → R
  24. Rotate(Prism[Polygon[Q, R, N], P], 0°, zAxis) → i
  25. Translate(M, Vector[(s * v)]) → M'
  26. Translate(P, Vector[(s * v)]) → P'
  27. Translate(Q, Vector[(s * v)]) → Q'
  28. Translate(I, Vector[(s * v)]) → I'
  29. Translate(J, Vector[(s * v)]) → J'
  30. Rotate(Prism[Polygon[I', J', F'], Q'], 0°, zAxis) → j
  31. Translate(N, Vector[(s * v)]) → N'
  32. Rotate(Prism[Polygon[Q', N', I'], P'], 0°, zAxis) → k
  33. Vector(B, Q) → u
  34. Sequence(Translate[Dilate[list1, 0.5, B'], Vector[(t * u)]], t, 0, 1) → list1'
  35. Sequence(Translate[Dilate[list2, 0.5, B], Vector[(t * u)]], t, 0, 1) → list2'
  36. Sequence(Translate[Dilate[list1, 0.25, B'], Vector[(t * u / 2)]], t, 0, 3) → list1''
  37. Sequence(Translate[Dilate[list2, 0.25, B], Vector[(t * u / 2)]], t, 0, 3) → list2''
  38. Sequence(Translate[Dilate[list1, 0.125, B'], Vector[(t * u / 4)]], t, 0, 7) → list1'''
  39. Sequence(Translate[Dilate[list2, 0.125, B], Vector[(t * u / 4)]], t, 0, 7) → list2'''
  40. Sequence(Translate[Dilate[list1, 0.0625, B'], Vector[(t * u / 8)]], t, 0, 15) → list1''''
  41. Sequence(Translate[Dilate[list2, 0.0625, B], Vector[(t * u / 8)]], t, 0, 15) → list2''''
  42. Translate(Pyramid[Polygon[B, C, F], E], Vector[(s * v)]) → c'
  43. Translate(Pyramid[Polygon[A, B, C, D], E], Vector[(0 * v)]) → f'
  44. Rotate(Prism[Polygon[D, L, P, H], O], 0°, zAxis) → g'
  45. Rotate(Prism[Polygon[A, O, G], K], 0°, zAxis) → h'
  46. Rotate(Prism[Polygon[Q, R, N], P], 0°, zAxis) → i'
  47. Rotate(Prism[Polygon[I', J', F'], Q'], 0°, zAxis) → j'
  48. Rotate(Prism[Polygon[Q', N', I'], P'], 0°, zAxis) → k'