Dibujando la banda de Möbius y la botella de Klein

Dibujando la banda de Möbius y la botella de Klein

Tengo esto:

\begin{tikzpicture}
\begin{axis}[hide axis, unit vector ratio=1 1 1, view={-30}{45}]
\addplot3 [surf, domain=0:360, y domain=-1:1] (    {(10+y*cos(3*x/2)))*cos(x)}, {(10+y*cos(3*x/2)))*sin(x)}, {y*sin(3*x/2)});
\end{axis}
\end{tikzpicture}

Pero no funciona. No sé la razón. Me gustaría obtener exactamente uno de estos:

ingrese la descripción de la imagen aquí

Además me gustaría dibujar una botella de Klein simple (sin cuadrículas ni sombras), pero en este caso no tengo nada... :(

ingrese la descripción de la imagen aquí

¡¡Gracias por el apoyo!!

Respuesta1

Una banda de Moebius de color (ejecutada con xelatex):

\documentclass[pstricks]{standalone}
\usepackage{pst-3dplot}

\makeatletter
\define@key[psset]{pst-3dplot}{HueBegin}{% Between 0 and 1
 \def\PstHSB@HueBegin{#1}}
\define@key[psset]{pst-3dplot}{HueEnd}{% Between 0 and 1
 \def\PstHSB@HueEnd{#1}}
\define@boolkey[psset]{pst-3dplot}[Pst@]{HSB}[true]{}
% Default values
\psset[pst-3dplot]{HueBegin=0,HueEnd=1,HSB=false}
\psset{dimen=outer}

\def\parametricPlotThreeD@iii{%   without arrows (quickplot)
 \addto@pscode{%
   \psk@ThreeDplot@yPlotpoints {
     /Counter 0 def
     /t tMin def
     xyz \@nameuse{beginqp@\psplotstyle}
     /t t dt add def
     \psk@ThreeDplot@xPlotpoints\space 1 sub {
       xyz
       /Counter Counter 1 add def
       1 Counter eq { moveto currentpoint /OldY ED /OldX ED }
       {\ifPst@HSB % Other points than the first one
        /PointY exch def
        /PointX exch def
        Counter \psk@ThreeDplot@xPlotpoints\space div
        \PstHSB@HueEnd\space
        \PstHSB@HueBegin\space sub mul
        \PstHSB@HueBegin\space add
        1 1 sethsbcolor
        OldX OldY PointX PointY lineto lineto
        stroke
        PointX PointY moveto
    /OldX PointX def /OldY PointY def
      \else lineto \fi } ifelse
       /t t dt add def
     } repeat
     /t t dt sub def
     /u u du add def
   } repeat
 }%
 \@nameuse{endqp@\psplotstyle}%
}
\makeatother

\begin{document}
\psset{Beta=20}
\begin{pspicture}(-6,-3)(6,3)
\def\Radius{5 }
\parametricplotThreeD[plotstyle=line,xPlotpoints=100,
 yPlotpoints=100,drawStyle=xyLines,HSB](0,365)(-1,1){
 t 2 div cos u mul \Radius add t cos mul
 t 2 div cos u mul \Radius add t sin mul
 t 2 div sin u mul }
%\pstThreeDCoor[xMin=-1,yMin=-1,zMin=-1]
\parametricplotThreeD[plotstyle=line,xPlotpoints=100,yPlotpoints=1,
  linecolor=black,linewidth=1.5pt](488,-60){
 t 2 div cos \Radius add t cos mul
 t 2 div cos \Radius add t sin mul
 t 2 div sin }
\parametricplotThreeD[plotstyle=line,xPlotpoints=100,yPlotpoints=1,
  linecolor=black,linewidth=1.5pt](631,513){
 t 2 div cos \Radius add t cos mul
 t 2 div cos \Radius add t sin mul
 t 2 div sin }
\end{pspicture}
\end{document} 

ingrese la descripción de la imagen aquí

Respuesta2

Tu código funciona (en mi humilde opinión).

\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}[declare function={moeb=3;phase=120;}]
\begin{axis}[hide axis, unit vector ratio=1 1 1, view={-30}{45}]
\addplot3 [surf, domain=0:360, y domain=-2:2,point
meta=rawy,shader=interp,samples=51,samples y=2] (   
 {(10+y*cos(moeb*x/2+phase)))*cos(x)}, {(10+y*cos(moeb*x/2+phase)))*sin(x)}, {y*sin(moeb*x/2+phase)});
\end{axis}
\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

Puedes cambiar la trama jugando con moeb, phasey point meta.

Respuesta3

No estoy tratando de dar una respuesta exacta, pero señalo que su comentario sobre el tema cuadriculado y gris no es deseable, por lo que tomando el ejemplo de código que se encuentra en este sitio con algunos ajustes, obtenemos esto, que supongo que es una representación razonable.ingrese la descripción de la imagen aquí Eso ayuda a muchas personas a comprender la naturaleza de un mobeius.

Pero si intentas eliminar la cuadrícula y el color como lo has hecho, en el mejor de los casos obtendrás un punto.

Del mismo modo, hay muchas respuestas para botellas en este sitio que puede adaptar eliminando las funciones que no desea, pero eliminar las cuadrículas las hace menos comprensibles.

Por lo tanto, podrías quitar las etiquetas de este.ingrese la descripción de la imagen aquíhttps://tex.stackexchange.com/a/77643/170109

¿Hacer una botella Klein etiquetada usando TikZ o pgfplots? pgfplots en combinación con gnuplot requiere punto y coma adicional pgfplots exp(-pow(deg(x),2) en el dominio 0:2*pi

Nota para aquellos que se preguntan dónde conseguir un artículo de fiesta para servir vino, consulte al fabricante deel mas grande del mundo

ingrese la descripción de la imagen aquí(http://www.kleinbottle.com/wine_bottle_klein_bottle.html)

información relacionada