3D Plotter for Implicit Functions by Roman Chijner

3D Plotter for Implicit Functions by Roman Chijner
Loading the math board and drawing, please wait…
2013-11-04 03:17
This example demonstrates how to graph implicit functions in 3D space. Key math concepts include implicit functions, 3D coordinate systems, and parametric equations. Construction highlights involve GeoGebra commands like Textfield, Join, Sequence, and objects such as Funktion (function), Nn (natural numbers), and sliders for adjusting x, y, z ranges and steps. Suitable for high school and above students exploring implicit surfaces.

GeoGebra Commands & Parameters

  1. Textfield(x_{min}) → Textfeld1
  2. Textfield(y_{min}) → Textfeld2
  3. Textfield(z_{min}) → Textfeld3
  4. Textfield(x_{max}) → Textfeld4
  5. Textfield(y_{max}) → Textfeld5
  6. Textfield(z_{max}) → Textfeld6
  7. Textfield(r_x) → Textfeld7
  8. Textfield(r_y) → Textfeld8
  9. Textfield(r_z) → Textfeld9
  10. Textfield(Nn) → Textfeld10
  11. Textfield(Funktion) → Textfeld11
  12. Textfield(g) → Textfeld12_1
  13. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{1}, s], j]), j, 1, Length[Element[M5y_{1}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{1}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{1}, s]]], s, 1, Nn + 1]]}) → M5yz_{1}
  14. Sequence((((-4) * r_x), (x(Element[M5yz_{1}, s]) * r_y), (y(Element[M5yz_{1}, s]) * r_z)), s, 1, Length[M5yz_{1}]) → M52_{1}
  15. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{2}, s], j]), j, 1, Length[Element[M5y_{2}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{2}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{2}, s]]], s, 1, Nn + 1]]}) → M5yz_{2}
  16. Sequence((((-3.7333333333333334) * r_x), (x(Element[M5yz_{2}, s]) * r_y), (y(Element[M5yz_{2}, s]) * r_z)), s, 1, Length[M5yz_{2}]) → M52_{2}
  17. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{3}, s], j]), j, 1, Length[Element[M5y_{3}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{3}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{3}, s]]], s, 1, Nn + 1]]}) → M5yz_{3}
  18. Sequence((((-3.466666666666667) * r_x), (x(Element[M5yz_{3}, s]) * r_y), (y(Element[M5yz_{3}, s]) * r_z)), s, 1, Length[M5yz_{3}]) → M52_{3}
  19. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{4}, s], j]), j, 1, Length[Element[M5y_{4}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{4}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{4}, s]]], s, 1, Nn + 1]]}) → M5yz_{4}
  20. Sequence((((-3.2) * r_x), (x(Element[M5yz_{4}, s]) * r_y), (y(Element[M5yz_{4}, s]) * r_z)), s, 1, Length[M5yz_{4}]) → M52_{4}
  21. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{5}, s], j]), j, 1, Length[Element[M5y_{5}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{5}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{5}, s]]], s, 1, Nn + 1]]}) → M5yz_{5}
  22. Sequence((((-2.9333333333333336) * r_x), (x(Element[M5yz_{5}, s]) * r_y), (y(Element[M5yz_{5}, s]) * r_z)), s, 1, Length[M5yz_{5}]) → M52_{5}
  23. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{6}, s], j]), j, 1, Length[Element[M5y_{6}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{6}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{6}, s]]], s, 1, Nn + 1]]}) → M5yz_{6}
  24. Sequence((((-2.666666666666667) * r_x), (x(Element[M5yz_{6}, s]) * r_y), (y(Element[M5yz_{6}, s]) * r_z)), s, 1, Length[M5yz_{6}]) → M52_{6}
  25. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{7}, s], j]), j, 1, Length[Element[M5y_{7}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{7}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{7}, s]]], s, 1, Nn + 1]]}) → M5yz_{7}
  26. Sequence((((-2.4) * r_x), (x(Element[M5yz_{7}, s]) * r_y), (y(Element[M5yz_{7}, s]) * r_z)), s, 1, Length[M5yz_{7}]) → M52_{7}
  27. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{8}, s], j]), j, 1, Length[Element[M5y_{8}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{8}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{8}, s]]], s, 1, Nn + 1]]}) → M5yz_{8}
  28. Sequence((((-2.1333333333333333) * r_x), (x(Element[M5yz_{8}, s]) * r_y), (y(Element[M5yz_{8}, s]) * r_z)), s, 1, Length[M5yz_{8}]) → M52_{8}
  29. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{9}, s], j]), j, 1, Length[Element[M5y_{9}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{9}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{9}, s]]], s, 1, Nn + 1]]}) → M5yz_{9}
  30. Sequence((((-1.8666666666666667) * r_x), (x(Element[M5yz_{9}, s]) * r_y), (y(Element[M5yz_{9}, s]) * r_z)), s, 1, Length[M5yz_{9}]) → M52_{9}
  31. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{10}, s], j]), j, 1, Length[Element[M5y_{10}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{10}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{10}, s]]], s, 1, Nn + 1]]}) → M5yz_{10}
  32. Sequence((((-1.6) * r_x), (x(Element[M5yz_{10}, s]) * r_y), (y(Element[M5yz_{10}, s]) * r_z)), s, 1, Length[M5yz_{10}]) → M52_{10}
  33. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{11}, s], j]), j, 1, Length[Element[M5y_{11}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{11}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{11}, s]]], s, 1, Nn + 1]]}) → M5yz_{11}
  34. Sequence((((-1.3333333333333335) * r_x), (x(Element[M5yz_{11}, s]) * r_y), (y(Element[M5yz_{11}, s]) * r_z)), s, 1, Length[M5yz_{11}]) → M52_{11}
  35. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{12}, s], j]), j, 1, Length[Element[M5y_{12}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{12}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{12}, s]]], s, 1, Nn + 1]]}) → M5yz_{12}
  36. Sequence((((-1.0666666666666669) * r_x), (x(Element[M5yz_{12}, s]) * r_y), (y(Element[M5yz_{12}, s]) * r_z)), s, 1, Length[M5yz_{12}]) → M52_{12}
  37. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{13}, s], j]), j, 1, Length[Element[M5y_{13}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{13}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{13}, s]]], s, 1, Nn + 1]]}) → M5yz_{13}
  38. Sequence((((-0.7999999999999998) * r_x), (x(Element[M5yz_{13}, s]) * r_y), (y(Element[M5yz_{13}, s]) * r_z)), s, 1, Length[M5yz_{13}]) → M52_{13}
  39. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{14}, s], j]), j, 1, Length[Element[M5y_{14}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{14}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{14}, s]]], s, 1, Nn + 1]]}) → M5yz_{14}
  40. Sequence((((-0.5333333333333332) * r_x), (x(Element[M5yz_{14}, s]) * r_y), (y(Element[M5yz_{14}, s]) * r_z)), s, 1, Length[M5yz_{14}]) → M52_{14}
  41. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{15}, s], j]), j, 1, Length[Element[M5y_{15}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{15}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{15}, s]]], s, 1, Nn + 1]]}) → M5yz_{15}
  42. Sequence((((-0.2666666666666666) * r_x), (x(Element[M5yz_{15}, s]) * r_y), (y(Element[M5yz_{15}, s]) * r_z)), s, 1, Length[M5yz_{15}]) → M52_{15}
  43. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{16}, s], j]), j, 1, Length[Element[M5y_{16}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{16}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{16}, s]]], s, 1, Nn + 1]]}) → M5yz_{16}
  44. Sequence(((0 * r_x), (x(Element[M5yz_{16}, s]) * r_y), (y(Element[M5yz_{16}, s]) * r_z)), s, 1, Length[M5yz_{16}]) → M52_{16}
  45. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{17}, s], j]), j, 1, Length[Element[M5y_{17}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{17}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{17}, s]]], s, 1, Nn + 1]]}) → M5yz_{17}
  46. Sequence(((0.2666666666666666 * r_x), (x(Element[M5yz_{17}, s]) * r_y), (y(Element[M5yz_{17}, s]) * r_z)), s, 1, Length[M5yz_{17}]) → M52_{17}
  47. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{18}, s], j]), j, 1, Length[Element[M5y_{18}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{18}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{18}, s]]], s, 1, Nn + 1]]}) → M5yz_{18}
  48. Sequence(((0.5333333333333332 * r_x), (x(Element[M5yz_{18}, s]) * r_y), (y(Element[M5yz_{18}, s]) * r_z)), s, 1, Length[M5yz_{18}]) → M52_{18}
  49. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{19}, s], j]), j, 1, Length[Element[M5y_{19}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{19}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{19}, s]]], s, 1, Nn + 1]]}) → M5yz_{19}
  50. Sequence(((0.7999999999999998 * r_x), (x(Element[M5yz_{19}, s]) * r_y), (y(Element[M5yz_{19}, s]) * r_z)), s, 1, Length[M5yz_{19}]) → M52_{19}
  51. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{20}, s], j]), j, 1, Length[Element[M5y_{20}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{20}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{20}, s]]], s, 1, Nn + 1]]}) → M5yz_{20}
  52. Sequence(((1.0666666666666664 * r_x), (x(Element[M5yz_{20}, s]) * r_y), (y(Element[M5yz_{20}, s]) * r_z)), s, 1, Length[M5yz_{20}]) → M52_{20}
  53. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{21}, s], j]), j, 1, Length[Element[M5y_{21}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{21}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{21}, s]]], s, 1, Nn + 1]]}) → M5yz_{21}
  54. Sequence(((1.333333333333333 * r_x), (x(Element[M5yz_{21}, s]) * r_y), (y(Element[M5yz_{21}, s]) * r_z)), s, 1, Length[M5yz_{21}]) → M52_{21}
  55. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{22}, s], j]), j, 1, Length[Element[M5y_{22}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{22}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{22}, s]]], s, 1, Nn + 1]]}) → M5yz_{22}
  56. Sequence(((1.5999999999999996 * r_x), (x(Element[M5yz_{22}, s]) * r_y), (y(Element[M5yz_{22}, s]) * r_z)), s, 1, Length[M5yz_{22}]) → M52_{22}
  57. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{23}, s], j]), j, 1, Length[Element[M5y_{23}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{23}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{23}, s]]], s, 1, Nn + 1]]}) → M5yz_{23}
  58. Sequence(((1.8666666666666663 * r_x), (x(Element[M5yz_{23}, s]) * r_y), (y(Element[M5yz_{23}, s]) * r_z)), s, 1, Length[M5yz_{23}]) → M52_{23}
  59. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{24}, s], j]), j, 1, Length[Element[M5y_{24}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{24}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{24}, s]]], s, 1, Nn + 1]]}) → M5yz_{24}
  60. Sequence(((2.133333333333333 * r_x), (x(Element[M5yz_{24}, s]) * r_y), (y(Element[M5yz_{24}, s]) * r_z)), s, 1, Length[M5yz_{24}]) → M52_{24}
  61. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{25}, s], j]), j, 1, Length[Element[M5y_{25}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{25}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{25}, s]]], s, 1, Nn + 1]]}) → M5yz_{25}
  62. Sequence(((2.4000000000000004 * r_x), (x(Element[M5yz_{25}, s]) * r_y), (y(Element[M5yz_{25}, s]) * r_z)), s, 1, Length[M5yz_{25}]) → M52_{25}
  63. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{26}, s], j]), j, 1, Length[Element[M5y_{26}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{26}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{26}, s]]], s, 1, Nn + 1]]}) → M5yz_{26}
  64. Sequence(((2.666666666666667 * r_x), (x(Element[M5yz_{26}, s]) * r_y), (y(Element[M5yz_{26}, s]) * r_z)), s, 1, Length[M5yz_{26}]) → M52_{26}
  65. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{27}, s], j]), j, 1, Length[Element[M5y_{27}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{27}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{27}, s]]], s, 1, Nn + 1]]}) → M5yz_{27}
  66. Sequence(((2.9333333333333336 * r_x), (x(Element[M5yz_{27}, s]) * r_y), (y(Element[M5yz_{27}, s]) * r_z)), s, 1, Length[M5yz_{27}]) → M52_{27}
  67. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{28}, s], j]), j, 1, Length[Element[M5y_{28}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{28}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{28}, s]]], s, 1, Nn + 1]]}) → M5yz_{28}
  68. Sequence(((3.2 * r_x), (x(Element[M5yz_{28}, s]) * r_y), (y(Element[M5yz_{28}, s]) * r_z)), s, 1, Length[M5yz_{28}]) → M52_{28}
  69. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{29}, s], j]), j, 1, Length[Element[M5y_{29}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{29}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{29}, s]]], s, 1, Nn + 1]]}) → M5yz_{29}
  70. Sequence(((3.466666666666667 * r_x), (x(Element[M5yz_{29}, s]) * r_y), (y(Element[M5yz_{29}, s]) * r_z)), s, 1, Length[M5yz_{29}]) → M52_{29}
  71. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{30}, s], j]), j, 1, Length[Element[M5y_{30}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{30}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{30}, s]]], s, 1, Nn + 1]]}) → M5yz_{30}
  72. Sequence(((3.7333333333333334 * r_x), (x(Element[M5yz_{30}, s]) * r_y), (y(Element[M5yz_{30}, s]) * r_z)), s, 1, Length[M5yz_{30}]) → M52_{30}
  73. Join({Join[Sequence[Sequence[(y_{min} + (dy2 * (s - 1)), Element[Element[M5y_{31}, s], j]), j, 1, Length[Element[M5y_{31}, s]]], s, 1, Nn + 1]], Join[Sequence[Sequence[(Element[Element[M5z_{31}, s], j], z_{min} + (dz2 * (s - 1))), j, 1, Length[Element[M5z_{31}, s]]], s, 1, Nn + 1]]}) → M5yz_{31}
  74. Sequence(((4 * r_x), (x(Element[M5yz_{31}, s]) * r_y), (y(Element[M5yz_{31}, s]) * r_z)), s, 1, Length[M5yz_{31}]) → M52_{31}

AI Drawing Prompt Reference

Create a 3D plot of an implicit function, set text fields for x, y, z min/max values and step size, generate natural number sequences, use sequences and joins to create sets of points in 3D space, calculate coordinates based on an input implicit function expression, and plot multiple scaled point sets to form a surface, showcasing the shape of the implicit function.
The prompt above was compiled from the original drawing commands and is for reference only.