tikz-3dplot による灰色の陰影付き球

tikz-3dplot による灰色の陰影付き球

を使ってグレースケールの陰影付き球を描くにはどうすればいいでしょうか?半径が に等しく、球面角度に応じて をtikz-3dplot使ってみました。しかし、色の色相(HSB空間)しか指定できないようです。\tdplotsphericalsurfaceplot1parametricfill次の投稿、これは私には合いません。 まで行って再定義することもできます \tdplotdosurfaceplotが、それはやりすぎのようです。

私が望んでいることを強調させてください真実3D描画(残りの絵必要3D座標:円弧を描く必要があるので、2Dのトリックを使うことができません。

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

これはないの複製陰影のある球体の描き方明確に 3D 図面を希望しており、できれば を使用していますtikz-3dplotが、他の 3D パッケージでも構いません。

ここに 2 つの MWE があります。最初の球は均一な色付けを使用し、2 番目は球面角度の線形結合を使用します。

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

パラメトリック ラインも削除したいと思います... おそらく、これは作業に適したパッケージではないか、パッケージ内の適切なコマンドではないのでしょう。 ここに画像の説明を入力してください

答え1

より良い使い方pgfplotsこの郵便受け)。パラメトリック塗りつぶしは、\theta+\phi私の意見では非常に奇妙に見えます。

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

ここに画像の説明を入力してください

答え2

あちこちでいろいろ試した結果、私は許容できる解決策を見つけました。これはtikz-3dplot(欠点はありますが、下記参照)使用しています。これはMWEで、陰影のある球体上に球面三角形が描かれています。異なる陰影については、陰影のある球体の描き方

以下のソリューションは部分的にごまかしをしています。陰影付きの球を描画するのではなく、遠近法で陰影付きの 2D ディスクを描画します。したがって、球のように見えるようにするには、3 次元空間で回転させる必要がある (回転した座標がこれです)。ただし、円弧の球面座標は正確です。

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

もう 1 つの欠点は、円弧を定義するための の構文が扱いにくくtikz-3dplot、それを コマンドと混在させることができないことですcoordinate陰影のある球面上の球面三角形

関連情報