下列的这个答案,我想在我的 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
我不知道什么是“现实主义”——这不是一个现实主义论坛!以下是圆柱体的着色,它是 和x
的y
函数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}