Desenhando a banda de Möbius e a garrafa de Klein

Desenhando a banda de Möbius e a garrafa de Klein

Eu tenho isto:

\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}

Mas não funciona. Eu não sei o motivo. Gostaria de obter exatamente um destes:

insira a descrição da imagem aqui

Além disso, gostaria de desenhar uma garrafa de Klein simples (sem grade ou sombras), mas neste caso não tenho nada... :(

insira a descrição da imagem aqui

Obrigado pelo apoio!!

Responder1

Uma banda colorida de Moebius (com 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} 

insira a descrição da imagem aqui

Responder2

Seu código funciona (IMHO).

\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}

insira a descrição da imagem aqui

Você pode mudar o enredo brincando com moeb, phasee point meta.

Responder3

Não estou tentando dar uma resposta exata, mas ressalto que seu comentário em grade e cinza não é desejável, portanto, tomando seu exemplo de código encontrado neste site com alguns ajustes, obtemos isso, o que acho que é uma renderização razoávelinsira a descrição da imagem aqui Isso ajuda muitas pessoas a compreender a natureza de um mobeius

Mas se você tentar remover a grade e a cor como fez, na melhor das hipóteses obterá um ponto.

Da mesma forma, há muitas respostas para garrafas neste site que você pode adaptar removendo os recursos que não deseja, mas remover as grades as torna menos compreensíveis.

Assim, você pode remover as etiquetas desteinsira a descrição da imagem aquihttps://tex.stackexchange.com/a/77643/170109

Fazendo uma garrafa Klein rotulada usando TikZ ou pgfplots? pgfplots em combinação com gnuplot requer ponto e vírgula adicional pgfplots exp(-pow(deg(x),2) no domínio 0:2*pi

Nota para quem está se perguntando onde conseguir uma peça de festa para servir vinho, consulte o fabricante deo maior do mundo

insira a descrição da imagem aqui(http://www.kleinbottle.com/wine_bottle_klein_bottle.html)

informação relacionada