Esfera sombreada en gris con tikz-3dplot

Esfera sombreada en gris con tikz-3dplot

¿Cómo dibujo una esfera sombreada en escala de grises tikz-3dplot? Intenté usar \tdplotsphericalsurfaceplotcon un radio igual a 1y parametricfilldependiendo 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. ingrese la descripción de la imagen aquí

Respuesta1

Mejor uso pgfplots(adaptado deesta publicación). El relleno paramétrico \theta+\phiparece 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}

ingrese la descripción de la imagen aquí

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-3dplotpara definir arcos y el hecho de que no se puede combinar con el coordinatecomando. triángulo esférico en esfera sombreada

información relacionada