Esfera sombreada cinza com tikz-3dplot

Esfera sombreada cinza com tikz-3dplot

Como faço para desenhar uma esfera sombreada em tons de cinza tikz-3dplot? Tentei usar \tdplotsphericalsurfaceplotcom raio igual a 1e parametricfilldependendo dos ângulos esféricos. Porém, parece que só posso prescrever a tonalidade da cor (no espaço HSB), de acordo com oseguinte postagem, o que não combina comigo. Eu poderia ir até o fim e redefinir \tdplotdosurfaceplot, mas isso parece um exagero.

Deixe-me enfatizar que eu queroverdadeiroDesenho 3D (o resto da minha fotorequerCoordenadas 3D: preciso desenhar arcos), então não posso usar truques 2D como

\draw [ball color=white] (0,0,0) circle (1) ;

então isso énãouma duplicata decomo desenhar uma esfera sombreada. Eu quero explicitamente um desenho 3D, de preferência com tikz-3dplot, embora esteja aberto a outros pacotes 3D.

Aqui estão dois MWEs: a primeira esfera usa coloração uniforme, enquanto a segunda usa uma combinação linear dos â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}

Eu também gostaria de me livrar das linhas paramétricas... Talvez este não seja o pacote certo para trabalhar, ou o comando certo no pacote. insira a descrição da imagem aqui

Responder1

Melhor utilização pgfplots(adaptado deesta postagem). O preenchimento paramétrico \theta+\phiparece bem estranho na minha opinião.

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

insira a descrição da imagem aqui

Responder2

Depois de tentar algumas partes aqui e ali, encontrei uma solução aceitável, que funciona tikz-3dplot(com deficiências, veja abaixo). Aqui está um MWE mostrando um triângulo esférico desenhado na esfera sombreada. Para diferentes tonalidades, basta ir paracomo desenhar uma esfera sombreada.

A solução abaixo trapaceia parcialmente: ela não desenha uma esfera sombreada, mas sim um disco 2D sombreado em perspectiva; portanto, é necessário girá-lo no espaço 3 para fazê-lo parecer uma esfera (daí as coordenadas giradas). No entanto, as coordenadas esféricas dos arcos são verdadeiras.

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

Outra deficiência é a sintaxe estranha tikz-3dplotpara definir arcos e o fato de que você não pode misturá-la com o coordinatecomando. triângulo esférico na esfera sombreada

informação relacionada