更改 pgfplots 补丁图的阴影和颜色

更改 pgfplots 补丁图的阴影和颜色

下列的这个答案,我想在我的 LaTeX 文档中插入一些复杂几何的实体模型。

面的默认着色基于其平均 z 值。面越高,则根据颜色图使用的颜色就越“大”。

我想改变它,这样就可以根据物体部分的亮度或阴影程度来选择颜色。

例如,我想在我的 LaTeX 文档中画一个简单的圆柱体。

在 Wolfram 的 Mathematica 中它看起来是这样的:

在此处输入图片描述

与 创建Graphics3D[{CapForm[None], Tube[{{0, 0, 0}, {0, 0, 1}}, 1]}]

我将此 Graphics 对象转换为一个stl文件,并将此文件转换为一个dat文件,即可以在这里找到

PGFPlots 的结果如下:

在此处输入图片描述

有没有什么方法可以让它看起来更“真实”,关于阴影、光源的位置等等?

LaTeX 代码:

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
  \begin{axis}[axis equal]
    \addplot3 [patch,shader=interp] file
      {cylinder.dat};
  \end{axis}
\end{tikzpicture}
\end{document}

答案1

我不知道什么是“现实主义”——这不是一个现实主义论坛!以下是圆柱体的着色,它是 和xy函数z

\documentclass[border=1cm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis equal,
xmin=-1, xmax=1,
ymin=-1, ymax=1,
zmin=0, zmax=1,
z buffer=sort,
]
\addplot3[
surf,
shader=interp,
domain=0:1,
y domain=0:360,
samples=2,
samples y=50,
point meta={abs(rawx+rawy+0.2*rawz)},
colormap={whiteblue}{color=(blue!50) color=(brown!50!black)}
] ( {cos(\y)} , {sin(\y)}, \x );
\end{axis}
\end{tikzpicture}
\end{document}

阴影圆柱体

相关内容