Peeling a Cube

Peeling a Cube
Loading the math board and drawing, please wait…
2018-04-06 05:55
This example demonstrates how to peel off the faces of a cube to show changes in its area and volume. Key mathematical concepts include solid geometry, surface, volume, and vectors. Using GeoGebra commands such as Polygon, Join, and Text, the example dynamically shows the faces of the cube and their changes. Suitable for middle school and above students learning solid geometry.

GeoGebra Commands & Parameters

  1. Zip(y(AAA), AAA, removedFaces) → yValues
  2. Zip(x(AAA), AAA, removedFaces) → xValues
  3. Polygon((lengthStarter, widthStarter, heightStarter), (lengthEnder, widthStarter, heightStarter), (lengthEnder, widthEnder, heightStarter), (lengthStarter, widthEnder, heightStarter)) → bottom, f, g, h, i
  4. Polygon((lengthStarter, widthStarter, heightEnder), (lengthEnder, widthStarter, heightEnder), (lengthEnder, widthEnder, heightEnder), (lengthStarter, widthEnder, heightEnder)) → top, j, k, l, m
  5. Polygon((lengthStarter, widthStarter, heightStarter), (lengthEnder, widthStarter, heightStarter), (lengthEnder, widthStarter, heightEnder), (lengthStarter, widthStarter, heightEnder)) → front, n, p, q, r
  6. Polygon((lengthStarter, widthEnder, heightStarter), (lengthEnder, widthEnder, heightStarter), (lengthEnder, widthEnder, heightEnder), (lengthStarter, widthEnder, heightEnder)) → back, s, t, a, b
  7. Polygon((lengthStarter, widthStarter, heightStarter), (lengthStarter, widthEnder, heightStarter), (lengthStarter, widthEnder, heightEnder), (lengthStarter, widthStarter, heightEnder)) → left, c, d, e, f_1
  8. Polygon((lengthEnder, widthStarter, heightStarter), (lengthEnder, widthEnder, heightStarter), (lengthEnder, widthEnder, heightEnder), (lengthEnder, widthStarter, heightEnder)) → right, g_1, h_1, i_1, j_1
  9. Join({Sequence[Segment[(lengthStarter, widthStarter, i), (lengthStarter, widthEnder, i)], i, heightStarter, heightEnder], Sequence[Segment[(lengthStarter, i, heightStarter), (lengthStarter, i, heightEnder)], i, widthStarter, widthEnder]}) → leftLines
  10. Join({Sequence[Segment[(lengthStarter, widthStarter, i), (lengthEnder, widthStarter, i)], i, heightStarter, heightEnder], Sequence[Segment[(i, widthStarter, heightStarter), (i, widthStarter, heightEnder)], i, lengthStarter, lengthEnder]}) → frontLines
  11. Join({Sequence[Segment[(lengthStarter, i, heightEnder), (lengthEnder, i, heightEnder)], i, widthStarter, widthEnder], Sequence[Segment[(i, widthStarter, heightEnder), (i, widthEnder, heightEnder)], i, lengthStarter, lengthEnder]}) → topLines
  12. Text(length, Midpoint[f] + (0, -2, 0)) → text1
  13. Text(height, Midpoint[f_1] + (-2, -2, 0)) → text2
  14. Text(width, Midpoint[g] + (2, 0, 0)) → text3
  15. Join({Sequence[Segment[(lengthStarter, widthEnder, i), (lengthEnder, widthEnder, i)], i, heightStarter, heightEnder], Sequence[Segment[(i, widthEnder, heightStarter), (i, widthEnder, heightEnder)], i, lengthStarter, lengthEnder]}) → backLines
  16. Join({Sequence[Segment[(lengthStarter, i, heightStarter), (lengthEnder, i, heightStarter)], i, widthStarter, widthEnder], Sequence[Segment[(i, widthStarter, heightStarter), (i, widthEnder, heightStarter)], i, lengthStarter, lengthEnder]}) → bottomLines
  17. Join({Sequence[Segment[(lengthEnder, widthStarter, i), (lengthEnder, widthEnder, i)], i, heightStarter, heightEnder], Sequence[Segment[(lengthEnder, i, heightStarter), (lengthEnder, i, heightEnder)], i, widthStarter, widthEnder]}) → rightLines
  18. Point(xAxis) → P_4
  19. Flatten(Sequence[Sequence[Point[{(11 * i), (11 * j)}], i, 0, 5], j, 0, 4]) → quadStarters
  20. Polygon(quadStarters(1), quadStarters(1) + (x1, 0), quadStarters(1) + (x1, y1), quadStarters(1) + (0, y1)) → poly1, k_1, l_1, m_1, n_1
  21. Polygon(quadStarters(2), quadStarters(2) + (x2, 0), quadStarters(2) + (x2, y2), quadStarters(2) + (0, y2)) → poly2, p_1, q_1, r_1, s_1
  22. Polygon(quadStarters(3), quadStarters(3) + (x3, 0), quadStarters(3) + (x3, y3), quadStarters(3) + (0, y3)) → poly3, t_1, a_1, b_1, c_1
  23. Polygon(quadStarters(4), quadStarters(4) + (x4, 0), quadStarters(4) + (x4, y4), quadStarters(4) + (0, y4)) → poly4, d_1, e_1, f_2, g_2
  24. Polygon(quadStarters(5), quadStarters(5) + (x5, 0), quadStarters(5) + (x5, y5), quadStarters(5) + (0, y5)) → poly5, h_2, i_2, j_2, k_2
  25. Polygon(quadStarters(6), quadStarters(6) + (x6, 0), quadStarters(6) + (x6, y6), quadStarters(6) + (0, y6)) → poly6, l_2, m_2, n_2, p_2
  26. Polygon(quadStarters(7), quadStarters(7) + (x7, 0), quadStarters(7) + (x7, y7), quadStarters(7) + (0, y7)) → poly7, q_2, r_2, s_2, t_2
  27. Polygon(quadStarters(8), quadStarters(8) + (x8, 0), quadStarters(8) + (x8, y8), quadStarters(8) + (0, y8)) → poly8, a_2, b_2, c_2, d_2
  28. Polygon(quadStarters(9), quadStarters(9) + (x9, 0), quadStarters(9) + (x9, y9), quadStarters(9) + (0, y9)) → poly9, e_2, f_3, g_3, h_3
  29. Polygon(quadStarters(10), quadStarters(10) + (x10, 0), quadStarters(10) + (x10, y10), quadStarters(10) + (0, y10)) → poly10, i_3, j_3, k_3, l_3
  30. Polygon(quadStarters(11), quadStarters(11) + (x11, 0), quadStarters(11) + (x11, y11), quadStarters(11) + (0, y11)) → poly11, m_3, n_3, p_3, q_3
  31. Polygon(quadStarters(12), quadStarters(12) + (x12, 0), quadStarters(12) + (x12, y12), quadStarters(12) + (0, y12)) → poly12, r_3, s_3, t_3, a_3
  32. Polygon(quadStarters(13), quadStarters(13) + (x13, 0), quadStarters(13) + (x13, y13), quadStarters(13) + (0, y13)) → poly13, b_3, c_3, d_3, e_3
  33. Polygon(quadStarters(14), quadStarters(14) + (x14, 0), quadStarters(14) + (x14, y14), quadStarters(14) + (0, y14)) → poly14, f_4, g_4, h_4, i_4
  34. Polygon(quadStarters(15), quadStarters(15) + (x15, 0), quadStarters(15) + (x15, y15), quadStarters(15) + (0, y15)) → poly15, j_4, k_4, l_4, m_4
  35. Polygon(quadStarters(16), quadStarters(16) + (x16, 0), quadStarters(16) + (x16, y16), quadStarters(16) + (0, y16)) → poly16, n_4, p_4, q_4, r_4
  36. Polygon(quadStarters(17), quadStarters(17) + (x17, 0), quadStarters(17) + (x17, y17), quadStarters(17) + (0, y17)) → poly17, s_4, t_4, a_4, b_4
  37. Polygon(quadStarters(18), quadStarters(18) + (x18, 0), quadStarters(18) + (x18, y18), quadStarters(18) + (0, y18)) → poly18, c_4, d_4, e_4, f_5
  38. Polygon(quadStarters(19), quadStarters(19) + (x19, 0), quadStarters(19) + (x19, y19), quadStarters(19) + (0, y19)) → poly19, g_5, h_5, i_5, j_5
  39. Polygon(quadStarters(20), quadStarters(20) + (x20, 0), quadStarters(20) + (x20, y20), quadStarters(20) + (0, y20)) → poly20, k_5, l_5, m_5, n_5
  40. Polygon(quadStarters(21), quadStarters(21) + (x21, 0), quadStarters(21) + (x21, y21), quadStarters(21) + (0, y21)) → poly21, p_5, q_5, r_5, s_5
  41. Polygon(quadStarters(22), quadStarters(22) + (x22, 0), quadStarters(22) + (x22, y22), quadStarters(22) + (0, y22)) → poly22, t_5, a_5, b_5, c_5
  42. Polygon(quadStarters(23), quadStarters(23) + (x23, 0), quadStarters(23) + (x23, y23), quadStarters(23) + (0, y23)) → poly23, d_5, e_5, f_6, g_6
  43. Polygon(quadStarters(24), quadStarters(24) + (x24, 0), quadStarters(24) + (x24, y24), quadStarters(24) + (0, y24)) → poly24, h_6, i_6, j_6, k_6
  44. Polygon(quadStarters(25), quadStarters(25) + (x25, 0), quadStarters(25) + (x25, y25), quadStarters(25) + (0, y25)) → poly25, l_6, m_6, n_6, p_6
  45. Polygon(quadStarters(26), quadStarters(26) + (x26, 0), quadStarters(26) + (x26, y26), quadStarters(26) + (0, y26)) → poly26, q_6, r_6, s_6, t_6
  46. Polygon(quadStarters(27), quadStarters(27) + (x27, 0), quadStarters(27) + (x27, y27), quadStarters(27) + (0, y27)) → poly27, a_6, b_6, c_6, d_6
  47. Polygon(quadStarters(28), quadStarters(28) + (x28, 0), quadStarters(28) + (x28, y28), quadStarters(28) + (0, y28)) → poly28, e_6, f_7, g_7, h_7
  48. Polygon(quadStarters(29), quadStarters(29) + (x29, 0), quadStarters(29) + (x29, y29), quadStarters(29) + (0, y29)) → poly29, i_7, j_7, k_7, l_7
  49. Polygon(quadStarters(30), quadStarters(30) + (x30, 0), quadStarters(30) + (x30, y30), quadStarters(30) + (0, y30)) → poly30, m_7, n_7, p_7, q_7
  50. Sequence(Sequence[Segment[quadStarters(i) + (j, 0), quadStarters(i) + (j, yValues(i))], j, 0, xValues(i)], i, 1, faceCount) → L_5
  51. Sequence(Sequence[Segment[quadStarters(i) + (0, j), quadStarters(i) + (xValues(i), j)], j, 0, yValues(i)], i, 1, faceCount) → L_6