如何给这个长方体添加阴影

如何给这个长方体添加阴影

我是 LaTeX 的初学者。我在这里见过很多 tikz 包,但我很困惑。但对于同一个形状,不同的人使用不同的代码。我觉得很难理解。这就是为什么我的 LaTeX 技能没有快速提高的原因。我用简单的代码制作了一个长方体。但我不知道如何添加阴影。我在 stack exchange 上看到了一些答案,但我还不明白,因为我觉得都很难。这是我的代码:

\begin{tikzpicture}
\draw[draw=black,fill=gray!20!white] (0,0,0)--(1.5,0,0)node[below]{$\delta x$}-- (3,0,0)--(3,2,0)--(0,2,0)-- cycle;
\draw[draw=black,fill=gray!20!white] (3,0,0)--(3,0,-1)node[above=2pt]{$h$}--(3,0,-2)--(3,1,-2)node[right]{$\delta y$}--(3,2,-2) --(3,2,0)--cycle;
\draw[draw=black,fill=gray!20!white] (0,2,0)--(3,2,0)--(3,2,-2)--(0,2,-2)--cycle;
\end{tikzpicture}

输出是在此处输入图片描述

我该如何给它着色?这样它才能看起来像真正的长方体(用灰色着色)。谢谢。

答案1

我可以使用以下代码来获得阴影:

\documentclass{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
\pgfdeclareverticalshading{cuboid}{100bp}{
    color(0bp)=(gray!0);
    color(25bp)=(gray!25);
    color(50bp)=(gray!50);
    color(75bp)=(gray!75);
    color(100bp)=(gray!100)
}
\draw[draw=black,shading=cuboid] (0,0,0)--(1.5,0,0)node[below]{$\delta x$}-- (3,0,0)--(3,2,0)--(0,2,0)-- cycle;
\draw[draw=black,shading=cuboid] (3,0,0)--(3,0,-1)node[above=2pt]{$h$}--(3,0,-2)--(3,1,-2)node[right]{$\delta y$}--(3,2,-2) --(3,2,0)--cycle;
\draw[draw=black,shading=cuboid] (0,2,0)--(3,2,0)--(3,2,-2)--(0,2,-2)--cycle;
\end{tikzpicture}
\end{document}

这将生成输出:

输出阴影

答案2

Z 不是 3D 渲染软件,但您可以更改不同区域的颜色以使其变暗。通常,光线来自左上角,因此长方体的正面和右侧应该更暗。您还可以使用径向渐变和一些剪辑技巧在上面添加微妙的反射效果:

\documentclass[border=10pt]{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
    \draw[black, fill=gray!45] 
        (0,0,0) -- (1.5,0,0) node[below] {$\delta x$} -- 
        (3,0,0) -- (3,2,0) -- (0,2,0) -- cycle;
    \draw[black, fill=gray!65] 
        (3,0,0) -- (3,0,-1) node[above=2pt]{$h$} -- 
        (3,0,-2) -- (3,1,-2) node[right]{$\delta y$} --
        (3,2,-2) -- (3,2,0) -- cycle;
    \begin{scope}
        \path[clip, save path=\surface] 
            (0,2,0) -- (3,2,0) -- (3,2,-2) -- (0,2,-2) -- cycle;
        \fill[inner color=white, outer color=gray!25] 
            (-2,2) rectangle (4,4);
    \end{scope}
    \draw[black] [use path=\surface];
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容