![Dibujando la banda de Möbius y la botella de Klein](https://rvso.com/image/391741/Dibujando%20la%20banda%20de%20M%C3%B6bius%20y%20la%20botella%20de%20Klein.png)
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:
Además me gustaría dibujar una botella de Klein simple (sin cuadrículas ni sombras), pero en este caso no tengo nada... :(
¡¡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}
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}
Puedes cambiar la trama jugando con moeb
, phase
y 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.
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.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