Klein Bottle with Unit Normal Vectors and Möbius Band

Klein Bottle with Unit Normal Vectors and Möbius Band
Loading the math board and drawing, please wait…
2019-11-01 12:36
This example illustrates a Klein bottle along with its unit normal vectors and a Möbius band. It covers core mathematical concepts such as coordinate geometry, vectors, and calculus. Using GeoGebra commands like Surface, Derivative, and Translate, users can visually understand the construction of these geometric objects. Suitable for high school and above students or teachers, it aids in comprehending basic concepts of three-dimensional geometry and topology.

GeoGebra Commands & Parameters

  1. Surface(F1(u, v), G1(u, v), H1(u, v), u, π, (2 * π), v, 0, (2 * π)) → Klein1
  2. Surface(F0(u, v), G0(u, v), H0(u, v), u, 0, π, v, 0, (2 * π)) → Klein0
  3. Derivative(F0, x) → dF0x
  4. Derivative(F0, y) → dF0y
  5. Derivative(G0, x) → dG0x
  6. Derivative(G0, y) → dG0y
  7. Derivative(H0, x) → dH0x
  8. Derivative(H0, y) → dH0y
  9. Derivative(F1, x) → dF1x
  10. Derivative(F1, y) → dF1y
  11. Derivative(G1, x) → dG1x
  12. Derivative(G1, y) → dG1y
  13. Derivative(H1, x) → dH1x
  14. Derivative(H1, y) → dH1y
  15. If(Ax < π, (uN0x(Ax, Ay), uN0y(Ax, Ay), uN0z(Ax, Ay)), If[Ax < (2 * π), (uN1x(Ax, Ay), uN1y(Ax, Ay), uN1z(Ax, Ay)), If[Ax < (3 * π), ((-uN0x(Ax, Ay)), (-uN0y(Ax, Ay)), (-uN0z(Ax, Ay))), ((-uN1x(Ax, Ay)), (-uN1y(Ax, Ay)), (-uN1z(Ax, Ay)))]]) → C
  16. If(Ax < π, Klein0(Ax, Ay), Klein1(Ax, Ay)) → A
  17. Translate(Vector[(0, 0, 0), C], A) → u
  18. Mod((4 * π / n) + Ax, (4 * π)) → A1
  19. Mod((8 * π / n) + Ax, (4 * π)) → A2
  20. Mod((12 * π / n) + Ax, (4 * π)) → A3
  21. Mod((16 * π / n) + Ax, (4 * π)) → A4
  22. Mod((20 * π / n) + Ax, (4 * π)) → A5
  23. If(A1 < π, Klein0(A1, π / 2), Klein1(A1, π / 2)) → B1
  24. If(A2 < π, Klein0(A2, π / 2), Klein1(A2, π / 2)) → B2
  25. If(A3 < π, Klein0(A3, π / 2), Klein1(A3, π / 2)) → B3
  26. If(A4 < π, Klein0(A4, π / 2), Klein1(A4, π / 2)) → B4
  27. If(A5 < π, Klein0(A5, π / 2), Klein1(A5, π / 2)) → B5
  28. If(A1 < π, (uN0x(A1, π / 2), uN0y(A1, π / 2), uN0z(A1, π / 2)), If[A1 < (2 * π), (uN1x(A1, π / 2), uN1y(A1, π / 2), uN1z(A1, π / 2)), If[A1 < (3 * π), ((-uN0x(A1, π / 2)), (-uN0y(A1, π / 2)), (-uN0z(A1, π / 2))), ((-uN1x(A1, π / 2)), (-uN1y(A1, π / 2)), (-uN1z(A1, π / 2)))]]) → C1
  29. If(A2 < π, (uN0x(A2, π / 2), uN0y(A2, π / 2), uN0z(A2, π / 2)), If[A2 < (2 * π), (uN1x(A2, π / 2), uN1y(A2, π / 2), uN1z(A2, π / 2)), If[A2 < (3 * π), ((-uN0x(A2, π / 2)), (-uN0y(A2, π / 2)), (-uN0z(A2, π / 2))), ((-uN1x(A2, π / 2)), (-uN1y(A2, π / 2)), (-uN1z(A2, π / 2)))]]) → C2
  30. If(A3 < π, (uN0x(A3, π / 2), uN0y(A3, π / 2), uN0z(A3, π / 2)), If[A3 < (2 * π), (uN1x(A3, π / 2), uN1y(A3, π / 2), uN1z(A3, π / 2)), If[A3 < (3 * π), ((-uN0x(A3, π / 2)), (-uN0y(A3, π / 2)), (-uN0z(A3, π / 2))), ((-uN1x(A3, π / 2)), (-uN1y(A3, π / 2)), (-uN1z(A3, π / 2)))]]) → C3
  31. If(A4 < π, (uN0x(A4, π / 2), uN0y(A4, π / 2), uN0z(A4, π / 2)), If[A4 < (2 * π), (uN1x(A4, π / 2), uN1y(A4, π / 2), uN1z(A4, π / 2)), If[A4 < (3 * π), ((-uN0x(A4, π / 2)), (-uN0y(A4, π / 2)), (-uN0z(A4, π / 2))), ((-uN1x(A4, π / 2)), (-uN1y(A4, π / 2)), (-uN1z(A4, π / 2)))]]) → C4
  32. If(A5 < π, (uN0x(A5, π / 2), uN0y(A5, π / 2), uN0z(A5, π / 2)), If[A5 < (2 * π), (uN1x(A5, π / 2), uN1y(A5, π / 2), uN1z(A5, π / 2)), If[A5 < (3 * π), ((-uN0x(A5, π / 2)), (-uN0y(A5, π / 2)), (-uN0z(A5, π / 2))), ((-uN1x(A5, π / 2)), (-uN1y(A5, π / 2)), (-uN1z(A5, π / 2)))]]) → C5
  33. Translate(Vector[(0, 0, 0), C1], B1) → D1
  34. Translate(Vector[(0, 0, 0), C2], B2) → D2
  35. Translate(Vector[(0, 0, 0), C3], B3) → D3
  36. Translate(Vector[(0, 0, 0), C4], B4) → D4
  37. Translate(Vector[(0, 0, 0), C5], B5) → D5
  38. Mod((24 * π / n) + Ax, (4 * π)) → A6
  39. Mod((28 * π / n) + Ax, (4 * π)) → A7
  40. Mod((32 * π / n) + Ax, (4 * π)) → A8
  41. Mod((36 * π / n) + Ax, (4 * π)) → A9
  42. Mod((40 * π / n) + Ax, (4 * π)) → A10
  43. Mod((44 * π / n) + Ax, (4 * π)) → A11
  44. Mod((48 * π / n) + Ax, (4 * π)) → A12
  45. Mod((52 * π / n) + Ax, (4 * π)) → A13
  46. Mod((56 * π / n) + Ax, (4 * π)) → A14
  47. Mod((60 * π / n) + Ax, (4 * π)) → A15
  48. Mod((64 * π / n) + Ax, (4 * π)) → A16
  49. Mod((68 * π / n) + Ax, (4 * π)) → A17
  50. Mod((72 * π / n) + Ax, (4 * π)) → A18
  51. Mod((76 * π / n) + Ax, (4 * π)) → A19
  52. Mod((80 * π / n) + Ax, (4 * π)) → A20
  53. Mod((84 * π / n) + Ax, (4 * π)) → A21
  54. Mod((88 * π / n) + Ax, (4 * π)) → A22
  55. Mod((92 * π / n) + Ax, (4 * π)) → A23
  56. Mod((96 * π / n) + Ax, (4 * π)) → A24
  57. Mod((100 * π / n) + Ax, (4 * π)) → A25
  58. If(A6 < π, Klein0(A6, π / 2), Klein1(A6, π / 2)) → B6
  59. If(A7 < π, Klein0(A7, π / 2), Klein1(A7, π / 2)) → B7
  60. If(A8 < π, Klein0(A8, π / 2), Klein1(A8, π / 2)) → B8
  61. If(A9 < π, Klein0(A9, π / 2), Klein1(A9, π / 2)) → B9
  62. If(A10 < π, Klein0(A10, π / 2), Klein1(A10, π / 2)) → B10
  63. If(A11 < π, Klein0(A11, π / 2), Klein1(A11, π / 2)) → B11
  64. If(A12 < π, Klein0(A12, π / 2), Klein1(A12, π / 2)) → B12
  65. If(A13 < π, Klein0(A13, π / 2), Klein1(A13, π / 2)) → B13
  66. If(A14 < π, Klein0(A14, π / 2), Klein1(A14, π / 2)) → B14
  67. If(A15 < π, Klein0(A15, π / 2), Klein1(A15, π / 2)) → B15
  68. If(A16 < π, Klein0(A16, π / 2), Klein1(A16, π / 2)) → B16
  69. If(A17 < π, Klein0(A17, π / 2), Klein1(A17, π / 2)) → B17
  70. If(A18 < π, Klein0(A18, π / 2), Klein1(A18, π / 2)) → B18
  71. If(A19 < π, Klein0(A19, π / 2), Klein1(A19, π / 2)) → B19
  72. If(A20 < π, Klein0(A20, π / 2), Klein1(A20, π / 2)) → B20
  73. If(A21 < π, Klein0(A21, π / 2), Klein1(A21, π / 2)) → B21
  74. If(A22 < π, Klein0(A22, π / 2), Klein1(A22, π / 2)) → B22
  75. If(A23 < π, Klein0(A23, π / 2), Klein1(A23, π / 2)) → B23
  76. If(A24 < π, Klein0(A24, π / 2), Klein1(A24, π / 2)) → B24
  77. If(A25 < π, Klein0(A25, π / 2), Klein1(A25, π / 2)) → B25
  78. If(A6 < π, (uN0x(A6, π / 2), uN0y(A6, π / 2), uN0z(A6, π / 2)), If[A6 < (2 * π), (uN1x(A6, π / 2), uN1y(A6, π / 2), uN1z(A6, π / 2)), If[A6 < (3 * π), ((-uN0x(A6, π / 2)), (-uN0y(A6, π / 2)), (-uN0z(A6, π / 2))), ((-uN1x(A6, π / 2)), (-uN1y(A6, π / 2)), (-uN1z(A6, π / 2)))]]) → C6
  79. If(A7 < π, (uN0x(A7, π / 2), uN0y(A7, π / 2), uN0z(A7, π / 2)), If[A7 < (2 * π), (uN1x(A7, π / 2), uN1y(A7, π / 2), uN1z(A7, π / 2)), If[A7 < (3 * π), ((-uN0x(A7, π / 2)), (-uN0y(A7, π / 2)), (-uN0z(A7, π / 2))), ((-uN1x(A7, π / 2)), (-uN1y(A7, π / 2)), (-uN1z(A7, π / 2)))]]) → C7
  80. If(A8 < π, (uN0x(A8, π / 2), uN0y(A8, π / 2), uN0z(A8, π / 2)), If[A8 < (2 * π), (uN1x(A8, π / 2), uN1y(A8, π / 2), uN1z(A8, π / 2)), If[A8 < (3 * π), ((-uN0x(A8, π / 2)), (-uN0y(A8, π / 2)), (-uN0z(A8, π / 2))), ((-uN1x(A8, π / 2)), (-uN1y(A8, π / 2)), (-uN1z(A8, π / 2)))]]) → C8
  81. If(A9 < π, (uN0x(A9, π / 2), uN0y(A9, π / 2), uN0z(A9, π / 2)), If[A9 < (2 * π), (uN1x(A9, π / 2), uN1y(A9, π / 2), uN1z(A9, π / 2)), If[A9 < (3 * π), ((-uN0x(A9, π / 2)), (-uN0y(A9, π / 2)), (-uN0z(A9, π / 2))), ((-uN1x(A9, π / 2)), (-uN1y(A9, π / 2)), (-uN1z(A9, π / 2)))]]) → C9
  82. If(A10 < π, (uN0x(A10, π / 2), uN0y(A10, π / 2), uN0z(A10, π / 2)), If[A10 < (2 * π), (uN1x(A10, π / 2), uN1y(A10, π / 2), uN1z(A10, π / 2)), If[A10 < (3 * π), ((-uN0x(A10, π / 2)), (-uN0y(A10, π / 2)), (-uN0z(A10, π / 2))), ((-uN1x(A10, π / 2)), (-uN1y(A10, π / 2)), (-uN1z(A10, π / 2)))]]) → C10
  83. If(A11 < π, (uN0x(A11, π / 2), uN0y(A11, π / 2), uN0z(A11, π / 2)), If[A11 < (2 * π), (uN1x(A11, π / 2), uN1y(A11, π / 2), uN1z(A11, π / 2)), If[A11 < (3 * π), ((-uN0x(A11, π / 2)), (-uN0y(A11, π / 2)), (-uN0z(A11, π / 2))), ((-uN1x(A11, π / 2)), (-uN1y(A11, π / 2)), (-uN1z(A11, π / 2)))]]) → C11
  84. If(A12 < π, (uN0x(A12, π / 2), uN0y(A12, π / 2), uN0z(A12, π / 2)), If[A12 < (2 * π), (uN1x(A12, π / 2), uN1y(A12, π / 2), uN1z(A12, π / 2)), If[A12 < (3 * π), ((-uN0x(A12, π / 2)), (-uN0y(A12, π / 2)), (-uN0z(A12, π / 2))), ((-uN1x(A12, π / 2)), (-uN1y(A12, π / 2)), (-uN1z(A12, π / 2)))]]) → C12
  85. If(A13 < π, (uN0x(A13, π / 2), uN0y(A13, π / 2), uN0z(A13, π / 2)), If[A13 < (2 * π), (uN1x(A13, π / 2), uN1y(A13, π / 2), uN1z(A13, π / 2)), If[A13 < (3 * π), ((-uN0x(A13, π / 2)), (-uN0y(A13, π / 2)), (-uN0z(A13, π / 2))), ((-uN1x(A13, π / 2)), (-uN1y(A13, π / 2)), (-uN1z(A13, π / 2)))]]) → C13
  86. If(A14 < π, (uN0x(A14, π / 2), uN0y(A14, π / 2), uN0z(A14, π / 2)), If[A14 < (2 * π), (uN1x(A14, π / 2), uN1y(A14, π / 2), uN1z(A14, π / 2)), If[A14 < (3 * π), ((-uN0x(A14, π / 2)), (-uN0y(A14, π / 2)), (-uN0z(A14, π / 2))), ((-uN1x(A14, π / 2)), (-uN1y(A14, π / 2)), (-uN1z(A14, π / 2)))]]) → C14
  87. If(A15 < π, (uN0x(A15, π / 2), uN0y(A15, π / 2), uN0z(A15, π / 2)), If[A15 < (2 * π), (uN1x(A15, π / 2), uN1y(A15, π / 2), uN1z(A15, π / 2)), If[A15 < (3 * π), ((-uN0x(A15, π / 2)), (-uN0y(A15, π / 2)), (-uN0z(A15, π / 2))), ((-uN1x(A15, π / 2)), (-uN1y(A15, π / 2)), (-uN1z(A15, π / 2)))]]) → C15
  88. If(A16 < π, (uN0x(A16, π / 2), uN0y(A16, π / 2), uN0z(A16, π / 2)), If[A16 < (2 * π), (uN1x(A16, π / 2), uN1y(A16, π / 2), uN1z(A16, π / 2)), If[A16 < (3 * π), ((-uN0x(A16, π / 2)), (-uN0y(A16, π / 2)), (-uN0z(A16, π / 2))), ((-uN1x(A16, π / 2)), (-uN1y(A16, π / 2)), (-uN1z(A16, π / 2)))]]) → C16
  89. If(A17 < π, (uN0x(A17, π / 2), uN0y(A17, π / 2), uN0z(A17, π / 2)), If[A17 < (2 * π), (uN1x(A17, π / 2), uN1y(A17, π / 2), uN1z(A17, π / 2)), If[A17 < (3 * π), ((-uN0x(A17, π / 2)), (-uN0y(A17, π / 2)), (-uN0z(A17, π / 2))), ((-uN1x(A17, π / 2)), (-uN1y(A17, π / 2)), (-uN1z(A17, π / 2)))]]) → C17
  90. If(A18 < π, (uN0x(A18, π / 2), uN0y(A18, π / 2), uN0z(A18, π / 2)), If[A18 < (2 * π), (uN1x(A18, π / 2), uN1y(A18, π / 2), uN1z(A18, π / 2)), If[A18 < (3 * π), ((-uN0x(A18, π / 2)), (-uN0y(A18, π / 2)), (-uN0z(A18, π / 2))), ((-uN1x(A18, π / 2)), (-uN1y(A18, π / 2)), (-uN1z(A18, π / 2)))]]) → C18
  91. If(A19 < π, (uN0x(A19, π / 2), uN0y(A19, π / 2), uN0z(A19, π / 2)), If[A19 < (2 * π), (uN1x(A19, π / 2), uN1y(A19, π / 2), uN1z(A19, π / 2)), If[A19 < (3 * π), ((-uN0x(A19, π / 2)), (-uN0y(A19, π / 2)), (-uN0z(A19, π / 2))), ((-uN1x(A19, π / 2)), (-uN1y(A19, π / 2)), (-uN1z(A19, π / 2)))]]) → C19
  92. If(A20 < π, (uN0x(A20, π / 2), uN0y(A20, π / 2), uN0z(A20, π / 2)), If[A20 < (2 * π), (uN1x(A20, π / 2), uN1y(A20, π / 2), uN1z(A20, π / 2)), If[A20 < (3 * π), ((-uN0x(A20, π / 2)), (-uN0y(A20, π / 2)), (-uN0z(A20, π / 2))), ((-uN1x(A20, π / 2)), (-uN1y(A20, π / 2)), (-uN1z(A20, π / 2)))]]) → C20
  93. If(A21 < π, (uN0x(A21, π / 2), uN0y(A21, π / 2), uN0z(A21, π / 2)), If[A21 < (2 * π), (uN1x(A21, π / 2), uN1y(A21, π / 2), uN1z(A21, π / 2)), If[A21 < (3 * π), ((-uN0x(A21, π / 2)), (-uN0y(A21, π / 2)), (-uN0z(A21, π / 2))), ((-uN1x(A21, π / 2)), (-uN1y(A21, π / 2)), (-uN1z(A21, π / 2)))]]) → C21
  94. If(A22 < π, (uN0x(A22, π / 2), uN0y(A22, π / 2), uN0z(A22, π / 2)), If[A22 < (2 * π), (uN1x(A22, π / 2), uN1y(A22, π / 2), uN1z(A22, π / 2)), If[A22 < (3 * π), ((-uN0x(A22, π / 2)), (-uN0y(A22, π / 2)), (-uN0z(A22, π / 2))), ((-uN1x(A22, π / 2)), (-uN1y(A22, π / 2)), (-uN1z(A22, π / 2)))]]) → C22
  95. If(A23 < π, (uN0x(A23, π / 2), uN0y(A23, π / 2), uN0z(A23, π / 2)), If[A23 < (2 * π), (uN1x(A23, π / 2), uN1y(A23, π / 2), uN1z(A23, π / 2)), If[A23 < (3 * π), ((-uN0x(A23, π / 2)), (-uN0y(A23, π / 2)), (-uN0z(A23, π / 2))), ((-uN1x(A23, π / 2)), (-uN1y(A23, π / 2)), (-uN1z(A23, π / 2)))]]) → C23
  96. If(A24 < π, (uN0x(A24, π / 2), uN0y(A24, π / 2), uN0z(A24, π / 2)), If[A24 < (2 * π), (uN1x(A24, π / 2), uN1y(A24, π / 2), uN1z(A24, π / 2)), If[A24 < (3 * π), ((-uN0x(A24, π / 2)), (-uN0y(A24, π / 2)), (-uN0z(A24, π / 2))), ((-uN1x(A24, π / 2)), (-uN1y(A24, π / 2)), (-uN1z(A24, π / 2)))]]) → C24
  97. If(A25 < π, (uN0x(A25, π / 2), uN0y(A25, π / 2), uN0z(A25, π / 2)), If[A25 < (2 * π), (uN1x(A25, π / 2), uN1y(A25, π / 2), uN1z(A25, π / 2)), If[A25 < (3 * π), ((-uN0x(A25, π / 2)), (-uN0y(A25, π / 2)), (-uN0z(A25, π / 2))), ((-uN1x(A25, π / 2)), (-uN1y(A25, π / 2)), (-uN1z(A25, π / 2)))]]) → C25
  98. Translate(Vector[(0, 0, 0), C6], B6) → D6
  99. Translate(Vector[(0, 0, 0), C7], B7) → D7
  100. Translate(Vector[(0, 0, 0), C8], B8) → D8
  101. Translate(Vector[(0, 0, 0), C9], B9) → D9
  102. Translate(Vector[(0, 0, 0), C10], B10) → D10
  103. Translate(Vector[(0, 0, 0), C11], B11) → D11
  104. Translate(Vector[(0, 0, 0), C12], B12) → D12
  105. Translate(Vector[(0, 0, 0), C13], B13) → D13
  106. Translate(Vector[(0, 0, 0), C14], B14) → D14
  107. Translate(Vector[(0, 0, 0), C15], B15) → D15
  108. Translate(Vector[(0, 0, 0), C16], B16) → D16
  109. Translate(Vector[(0, 0, 0), C17], B17) → D17
  110. Translate(Vector[(0, 0, 0), C18], B18) → D18
  111. Translate(Vector[(0, 0, 0), C19], B19) → D19
  112. Translate(Vector[(0, 0, 0), C20], B20) → D20
  113. Translate(Vector[(0, 0, 0), C21], B21) → D21
  114. Translate(Vector[(0, 0, 0), C22], B22) → D22
  115. Translate(Vector[(0, 0, 0), C23], B23) → D23
  116. Translate(Vector[(0, 0, 0), C24], B24) → D24
  117. Translate(Vector[(0, 0, 0), C25], B25) → D25
  118. Surface((1.01 * F0(u, v)), (1.01 * G0(u, v)), (1.01 * H0(u, v)), u, 0, π, v, π / 2 - 0.2, π / 2 + 0.2) → Klein00
  119. Surface((1.01 * F1(u, v)), (1.01 * G1(u, v)), (1.01 * H1(u, v)), u, π, (2 * π), v, π / 2 - 0.2, π / 2 + 0.2) → Klein01

AI Drawing Prompt Reference

Create a 3D Klein bottle surface composed of two parametric patches, with unit normal vectors drawn as arrows across the surface. Additionally, place a series of unit normal vectors along a specific cross-section of the bottle, spaced evenly, to form a Möbius band-like pattern. The overall shape illustrates the non-orientable topology of the Klein bottle, with normals changing direction continuously.
The prompt above was compiled from the original drawing commands and is for reference only.