我正在尝试绘制一个带有阴影的 3D 图片,以使其看起来更漂亮一些。到目前为止,它只是一个长方体,我发现了阴影命令。以下是我目前所得到的:
\documentclass[varwidth, border=5pt]{standalone}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\usetikzlibrary{3d}
\begin{document}
\begin{tikzpicture}
\shade[bottom color=blue, top color = white] (0,0,0) -- (0.5,0,0) -- (0.5,2,0) -- (0,2,0) -- cycle;
\shade[bottom color=white, top color=blue] (0,2,0) -- (0,2,-2) -- (0.5,2,-2) -- (0.5,2,0) -- cycle;
\shade[shading=axis,shading angle=45,left color=blue, right color=white] (0.5,0,0) -- (0.5,2,0) -- (0.5,2,-2) -- (0.5,0,-2) -- cycle;
\end{tikzpicture}
\end{document}
我的问题是定义shading angle=45
不起作用。我只能从上到下或从左到右定义阴影。有没有办法定义阴影从一个角到另一个角?
谢谢。
编辑:也许使用径向阴影的某些技术会起作用?但我需要能够将径向阴影的中心从矩形的中心更改为角落。
答案1
如果我理解正确的话,你可以使用shadings
库并说
\shade[lower left=blue, upper right=red] (0.5,0,0) -- (0.5,2,0) -- (0.5,2,-2) -- (0.5,0,-2) -- cycle;
我选择这么做red
只是为了让它引人注目。
\documentclass[varwidth, border=5pt]{standalone}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\usetikzlibrary{3d,shadings}
\begin{document}
\begin{tikzpicture}
\shade[bottom color=blue, top color = white] (0,0,0) -- (0.5,0,0) -- (0.5,2,0) -- (0,2,0) -- cycle;
\shade[bottom color=white, top color=blue] (0,2,0) -- (0,2,-2) -- (0.5,2,-2) -- (0.5,2,0) -- cycle;
\shade[lower left=blue, upper right=red] (0.5,0,0) -- (0.5,2,0) -- (0.5,2,-2) -- (0.5,0,-2) -- cycle;
\end{tikzpicture}
\end{document}
随机颜色选择
\documentclass[varwidth, border=5pt]{standalone}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\usetikzlibrary{3d,shadings}
\begin{document}
\begin{tikzpicture}
\shade[lower left=red!20,lower right=red, upper left=blue,upper right=blue!20] (0,0,0) -- (0.5,0,0) -- (0.5,2,0) -- (0,2,0) -- cycle;
\shade[lower left=blue,lower right=red!5, upper left=red,upper right=blue!5] (0,2,0) -- (0,2,-2) -- (0.5,2,-2) -- (0.5,2,0) -- cycle;
\shade[lower left=red,lower right=red!50!blue!50,upper left=blue!50!red!50, upper right=blue] (0.5,0,0) -- (0.5,2,0) -- (0.5,2,-2) -- (0.5,0,-2) -- cycle;
\end{tikzpicture}
\end{document}