Volume of a Rectangular Frustum

Volume of a Rectangular Frustum
Loading the math board and drawing, please wait…
2017-09-09 12:28
① This GeoGebra example dynamically demonstrates the volume calculation of a rectangular frustum (a truncated rectangular pyramid), showing its 3D structure and how dimensions affect the volume. ② Core mathematical concepts include solid geometry (frustum volume formula), similar triangles for proportional relationships, and the ideas of derivative and limit (as the top face approaches the base, it becomes a prism; as it approaches the apex, it becomes a pyramid). ③ Construction highlights: using GeoGebra commands such as Midpoint, Translate, Line, OrthogonalPlane, Polygon, and Vector to build the base and top rectangles, connecting corresponding vertices with Segment to form the frustum, and using If for conditional dynamic parameters; objects include multiple vertices (A, B, C, D, etc.), auxiliary points (H, I, J, etc.), planes, and vectors, with sliders to adjust height and section position. ④ Suitable for high school or early college students to understand the derivation of volume formulas in solid geometry, and as a visual aid for the 'cross-section method' in calculus, bridging geometric intuition and analytical thinking.

GeoGebra Commands & Parameters

  1. Midpoint(B2', B3) → U
  2. Translate(Prism[H, B2', B2, I], Vector[(0, 0, 0)]) → q
  3. Midpoint(B, B1') → V
  4. Line(U, V) → p
  5. If(t2 < 0.5, (2 * t2), 1) → t2'
  6. If(t2 < 0.5, 0, (2 * (t2 - 0.5))) → t3'
  7. Midpoint(B3, B') → K
  8. Midpoint(B2, B1') → L
  9. Line(L, K) → i
  10. Segment(E, B3') → m
  11. Midpoint(m) → N
  12. OrthogonalPlane(N, m) → n_1
  13. Segment(D, B') → k
  14. Midpoint(D, B') → M
  15. OrthogonalPlane(M, k) → l
  16. Translate(Pyramid[A, D, B', C, B], Vector[(t1 * Vector[B', O])]) → e
  17. Translate(Pyramid[A1, F, B1', E, B1], Vector[(t1 * Vector[B1', O])]) → f
  18. Translate(Pyramid[A3, J, B3', I, B3], Vector[(t1 * Vector[B3', O])]) → g
  19. Translate(Prism[J, B3', B3, C], Vector[(0, 0, 0)]) → j
  20. Translate(Pyramid[A2, G, B2', H, B2], Vector[(t1 * Vector[B2', O])]) → h
  21. Translate(Rotate[Rotate[q, 180°, zAxis], (180° * t2'), p], Vector[(t3' * Vector[B', I])]) → q'
  22. Translate(Rotate[Prism[F, B1', B1, G], ((t2' * 180))°, i], Vector[(t3' * Vector[B2', J])]) → o
  23. Translate(Prism[B', B1', B2', B3', B], Vector[(0, 0 - 0)]) → r
  24. Polygon(B, B1, B2, B3) → q2, b_1, b1, b2, b3
  25. Segment(A, B) → s
  26. Segment(A1, B1) → t
  27. Segment(A2, B2) → f_1
  28. Segment(A3, B3) → g_1
  29. Segment(P - (0.5, 0), P - (1.5, 0)) → b
  30. Polygon(A, A1, A2, A3) → q1, a, a1, a2, a3
  31. Translate(b, Vector[(0, 0, 0), (0, 0, z(B))]) → b'
  32. Midpoint(b) → Q
  33. Translate(Q, Vector[(0, 0, 0), (0, 0, z(B))]) → Q'
  34. Vector(Q, Q') → u
  35. Vector(Q', Q) → v
  36. Segment(H - (0, 1, 0), H - (0, 2, 0)) → c
  37. Segment(I - (0, 1, 0), I - (0, 2, 0)) → d
  38. Vector(Midpoint[c], Midpoint[d]) → w
  39. Vector(Midpoint[d], Midpoint[c]) → u_1
  40. Segment(R - (0, 1, 0), R - (0, 2, 0)) → h_1
  41. Segment(S - (0, 1, 0), S - (0, 2, 0)) → i_1
  42. Vector(Midpoint[h_1], Midpoint[i_1]) → v_1
  43. Vector(Midpoint[i_1], Midpoint[h_1]) → w_1
  44. Translate(Polygon[A, B, B3, A3], Vector[(0, 0)]) → q3
  45. Translate(Polygon[A, A1, B1, B], Vector[(0, 0)]) → q4
  46. Translate(Polygon[A1, A2, B2, B1], Vector[(0, 0)]) → q5
  47. Translate(Polygon[A2, A3, B3, B2], Vector[(0, 0)]) → q6
  48. If(t0 ≠ 0 ∧ t0 ≠ 1 ∨ t1 ≠ 0 ∧ t1 ≠ 1 ∨ t2 ≠ 0 ∧ t2 ≠ 1, false, true) → show
  49. Segment(S + (0.5, 0), S + (1.5, 0)) → j_1
  50. Segment(S + (0.5, 0), S + (1.5, 0)) → k_1
  51. Segment(T + (0.5, 0), T + (1.5, 0)) → l_1
  52. Vector(Midpoint[k_1], Midpoint[l_1]) → a_1
  53. Vector(Midpoint[l_1], Midpoint[k_1]) → c_1
  54. Segment(C + (0.3, 0), C + (1.2, 0)) → p_1
  55. Segment(J + (0.3, 0), J + (1.2, 0)) → m_1
  56. Vector(Midpoint[m_1], Midpoint[p_1]) → d_1
  57. Vector(Midpoint[p_1], Midpoint[m_1]) → e_1
  58. Segment(A3 + (0.3, 0), A3 + (1.2, 0)) → q_1
  59. Segment(Midpoint[m_1], Midpoint[q_1]) → r_1
  60. Midpoint(r_1) → W
  61. Segment(W, Z) → s_1
  62. Segment(A3 - (0, 1, 0), A3 - (0, 2, 0)) → t_1
  63. Segment(Midpoint[d], Midpoint[t_1]) → v_2
  64. Midpoint(v_2) → A_1
  65. Segment(B_1, A_1) → f_2