Interactive 3D Filling Curves and Geometric Transforms

Interactive 3D Filling Curves and Geometric Transforms
Loading the math board and drawing, please wait…
2021-01-30 19:12
This example demonstrates how to build interactive “filling curves” or filled regions in 3D space, where the shape evolves under geometric transformations. It connects visible curve behavior with core ideas such as curve sketching, the role of tangency/derivative-related change, and how dilation/ratio-like scaling plus 3D transformations (rotation, translation, mirroring) reshape the resulting surface/filled area. Construction-wise, it combines GeoGebra commands such as Line, Point, Mirror, Sequence, PolyLine, Midpoint, Segment, Ellipse, Take, Union, Vector, Translate, Rotate, Surface, Circle, and Element, using structured intermediate objects (e.g., indexed objects like C1…C21 and auxiliary parameters) to generate the 3D filled effect. Suitable for high school through early university students, especially for teaching solid geometry, coordinate geometry, and visualization of concepts related to calculus and curve behavior.

GeoGebra Commands & Parameters

  1. Line(B, yAxis) → ff
  2. Point(a) → C1
  3. Point(c_1) → C21
  4. Point(b_1) → C20
  5. Point(a_1) → C19
  6. Point(t) → C18
  7. Point(r) → C17
  8. Point(q) → C16
  9. Point(p) → C15
  10. Point(n) → C14
  11. Point(m) → C13
  12. Point(l) → C12
  13. Point(k) → C11
  14. Point(j) → C10
  15. Point(i) → C9
  16. Point(h_1) → C8
  17. Point(g) → C7
  18. Point(f) → C6
  19. Point(e) → C5
  20. Point(d) → C4
  21. Point(c) → C3
  22. Point(b) → C2
  23. Mirror(C2, ff) → D2
  24. Mirror(C3, ff) → D3
  25. Mirror(C4, ff) → D4
  26. Mirror(C5, ff) → D5
  27. Mirror(C6, ff) → D6
  28. Mirror(C7, ff) → D7
  29. Mirror(C8, ff) → D8
  30. Mirror(C9, ff) → D9
  31. Mirror(C10, ff) → D10
  32. Mirror(C11, ff) → D11
  33. Mirror(C12, ff) → D12
  34. Mirror(C13, ff) → D13
  35. Mirror(C14, ff) → D14
  36. Mirror(C15, ff) → D15
  37. Mirror(C16, ff) → D16
  38. Mirror(C17, ff) → D17
  39. Sequence(abs(x(Object["C" + (t)]) - x(B)), t, 1, 21) → rayon
  40. PolyLine(liste1) → s
  41. Sequence(Element[rayon, k]^(2) + Element[rayon, k + 1]^(2) + (Element[rayon, k] * Element[rayon, k + 1]), k, 1, 20) → volumes
  42. Sum(volumes) → volumenT
  43. Sequence(Sum[First[volumeB, k]], k, 1, 21) → volumeA
  44. Mirror(C18, ff) → D18
  45. Mirror(C19, ff) → D19
  46. Mirror(C20, ff) → D20
  47. Mirror(C21, ff) → D21
  48. Sequence(((20 * Element[volumeA, k]), k), k, 1, 21) → points
  49. Mirror(C1, ff) → D1
  50. PolyLine(liste2) → d_1
  51. Midpoint(C1, D1) → A
  52. Sequence(Segment[Element[points, k], Element[points, k + 1]], k, 1, 19) → liste3
  53. Segment(D1, (10, 0)) → e_1
  54. Sequence(Segment[(k, 0), (k, 20)], k, 0, 20) → traitverti
  55. Sequence(Segment[(0, k), (20, k)], k, 1, 20) → traith
  56. Sequence(Segment[Object["D" + (t)], (0, t - 1)], t, 1, 21) → liste4
  57. Ellipse(D1, C1, C) → f_1
  58. Midpoint(C21, D21) → D
  59. Ellipse(C21, D21, E) → g_1
  60. Sequence(Segment[Element[points, t], (0, t)], t, 1, 21) → liste5
  61. Segment((0, 0), Element[points, 1]) → i_1
  62. Take(liste5, 1, h - 1) → liste7
  63. Take(liste4, 1, h) → liste6
  64. Take(points, 1, h - 1) → haut1
  65. Take(liste1, 1, h) → rec1
  66. Take(liste2, 1, h) → rec2
  67. Union(rec1, rec2) → rec
  68. Sequence(Polygon[Element[liste1, i], Element[liste1, i + 1], Element[liste2, i + 1], Element[liste2, i]], i, 1, Length[liste7]) → liste8
  69. Ellipse(D1, C1, C) → k_1
  70. Ellipse(C21, D21, E) → p_1
  71. Segment(Element[liste1, h], Element[points, h - 1]) → haut
  72. Sequence(G + ((i * AxisStepX[]), 0), i, 0, 20) → liste9
  73. Sequence(G + (0, (i * AxisStepY[])), i, 0, 20) → liste10
  74. Vector(G, H) → u
  75. Vector(G, I) → v
  76. Sequence(Text["" + (i), Element[liste9, i + 1] - (0.2, 0.75)], i, 0, 20) → liste11
  77. Take(volumes, 1, h - 1) → volhaut
  78. Sum(volhaut) → Vol
  79. Take(liste3, 1, h - 2) → liste12
  80. Translate(s, Vector[C1, J]) → s'
  81. Translate(D1, Vector[C1, J]) → D1'
  82. Line(J, D1') → j_1
  83. Midpoint(D1', J) → K
  84. Rotate(s', 90°, j_1) → s''
  85. Line(K, zAxis) → l_1
  86. Surface(s'', (2 * π), l_1) → o
  87. Circle(K, Distance[K, J], l_1) → q_1
  88. Take(liste1, 1, h) → liste1b
  89. PolyLine(liste1b) → m_1
  90. Translate(m_1, Vector[C1, J]) → n_1
  91. Rotate(n_1, 90°, j_1) → r_1
  92. Surface(r_1, (2 * π), l_1) → w
  93. Translate(C21, Vector[C1, J]) → C21'
  94. Rotate(C21', 90°, j_1) → C21''
  95. Translate(D21, Vector[C1, J]) → D1'_{1}
  96. Rotate(D1'_{1}, 90°, j_1) → L
  97. Midpoint(C21'', L) → M
  98. Circle(M, Distance[M, L], l_1) → s_1
  99. Element(liste1, h) → l1
  100. Translate(l1, Vector[C1, J]) → l1'
  101. Rotate(l1', 90°, j_1) → l1''
  102. Mirror(l1'', l_1) → l1'''
  103. Midpoint(l1'', l1''') → N
  104. Circle(N, Distance[N, l1''], l_1) → t_1
  105. Circle(N, Distance[N, l1''], l_1) → c_2

AI Drawing Prompt Reference

Draw a 3D filled curve passing through points A, B, C, etc., which are mirrored to form D1 to D21. First, create a line ff parallel to the y-axis, then place points A, B, C, etc., on this line, and apply mirror transformations to these points to form the 3D filled area. Finally, calculate the volume of this area.
The prompt above was compiled from the original drawing commands and is for reference only.