
¿Cómo dibujo una esfera sombreada en escala de grises tikz-3dplot
? Intenté usar \tdplotsphericalsurfaceplot
con un radio igual a 1
y parametricfill
dependiendo de los ángulos esféricos. Sin embargo, parece que sólo puedo prescribir el tono del color (en el espacio HSB), según elsiguiente publicación, lo cual no me conviene. Podría llegar hasta el final y redefinir \tdplotdosurfaceplot
, pero eso parece excesivo.
Déjame enfatizar que quieroverdaderoDibujo 3D (el resto de mi imagenrequiereCoordenadas 3D: necesito dibujar arcos), por lo que no puedo usar trucos 2D como
\draw [ball color=white] (0,0,0) circle (1) ;
entonces esto esnoun duplicado decómo-dibujar-una-esfera-sombreada. Quiero explícitamente un dibujo en 3D, preferiblemente con tikz-3dplot
, aunque estoy abierto a otros paquetes en 3D.
Aquí hay dos MWE: la primera esfera usa una coloración uniforme, mientras que la segunda usa una combinación lineal de los ángulos esféricos:
\begin{tikzpicture}[tdplot_main_coords]
\tdplotsphericalsurfaceplot[parametricfill]{24}{24}{1} {black}{50}{}{}{}
\begin{scope}[xshift=4cm]
\tdplotsphericalsurfaceplot[parametricfill]{24}{24}{1} {black}{\tdplottheta+\tdplotphi}{}{}{}
\end{scope}
\end{tikzpicture}
También me gustaría deshacerme de las líneas paramétricas... Quizás este no sea el paquete correcto para trabajar o el comando correcto en el paquete.
Respuesta1
Mejor uso pgfplots
(adaptado deesta publicación). El relleno paramétrico \theta+\phi
parece bastante extraño en mi opinión.
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.15}
\begin{document}
\begin{tikzpicture}
\begin{axis}
[
width=6cm,height=6cm,
axis equal,enlargelimits=false,
axis lines=none,
domain=0:180,samples=21,
y domain=0:360,samples y=21,
colormap/blackwhite,
view={100}{10},
]
\addplot3
[
surf,
z buffer=sort,
shader=flat,
point meta={acos(z/sqrt(x*x+y*y+z*z)) + atan2(y,x)}
] (
{sin(x)*cos(y)},
{sin(x)*sin(y)},
{cos(x)}
);
\end{axis}
\end{tikzpicture}
\end{document}
Respuesta2
Después de probar partes aquí y allá, se me ocurrió una solución aceptable, que sí se utiliza tikz-3dplot
(con deficiencias, ver más abajo). Aquí hay un MWE que muestra un triángulo esférico dibujado en la esfera sombreada. Para diferentes tonos, simplemente vaya acómo-dibujar-una-esfera-sombreada.
La siguiente solución engaña parcialmente: no dibuja una esfera sombreada sino un disco 2D sombreado en perspectiva; por lo tanto, hay que rotarlo en 3 espacios para que parezca una esfera (de ahí las coordenadas rotadas). Sin embargo, las coordenadas esféricas de los arcos son verdaderas.
\documentclass[11pt]{article}
\usepackage{tikz,tikz-3dplot}
\tdplotsetmaincoords{80}{110}
\begin{document}
\begin{figure}
\begin{center}
\begin{tikzpicture}[scale=3,tdplot_main_coords]
% spherical background
\tdplotsetrotatedcoords{20}{80}{0}
\draw [ball color=white,very thin,tdplot_rotated_coords] (0,0,0) circle (1) ;
% equator
\draw [dashed] (0,0,0) circle (1) ;
% spherical triangle
\tdplotdefinepoints(0,0,0)(0.8,-0.4,-0.4)(0.4,0.8,-0.4)
\tdplotdrawpolytopearc[thick]{1}{}{}
\tdplotdefinepoints(0,0,0)(0.4,0.8,-0.4)(0.45,0.22,0.9)
\tdplotdrawpolytopearc[thick]{1}{}{}
\tdplotdefinepoints(0,0,0)(0.45,0.22,0.9)(0.8,-0.4,-0.4)
\tdplotdrawpolytopearc[thick]{1}{}{}
\end{tikzpicture}
\end{center}
\end{figure}
\end{document}
Otro inconveniente es la sintaxis incómoda tikz-3dplot
para definir arcos y el hecho de que no se puede combinar con el coordinate
comando.