如何使用 TIKZ 在多个矩形上创建阴影?

如何使用 TIKZ 在多个矩形上创建阴影?

我有以下代码,用于构建魔方:

\foreach \x in {0,1,2}
{
    \foreach \y in {0,1,2}
    {
        \path[draw,fill=blue] (\y,\x,3) -- (\y+1,\x,3) -- (\y+1,\x+1,3) -- (\y,\x+1,3)--cycle; % breite,länge,tiefe
    }   

    \foreach \y in{0,1,2}
    {   
        \path[draw,fill=green] (\y,3,\x+1) --(\y+1,3,\x+1) -- (\y+1,3,\x) -- (\y,3,\x)--cycle;
    }

    \foreach \y in{0,1,2}
    {   
        \path[draw, fill=red] (3,\y,\x+1) -- (3,\y,\x) -- (3,\y+1,\x) -- (3,\y+1,\x+1)--cycle; % breite,länge,tiefe
    }
}

魔方

现在我想给整个网站添加阴影。下一步,魔方在一个网站上不会有相同的颜色。所以我不能给网站添加大阴影。我需要一个函数,可以为每个小矩形添加阴影,但看起来就像给整个网站添加阴影。我希望你知道我在找什么。

也许有一个选项可以控制阴影的流动?这样左边的矩形的强度为 100% 到 80%,中间的矩形的强度为 80% 到 60%,依此类推...

我必须与 TIKZ 合作。

- 编辑

它需要看起来像这样:

带阴影的魔方

但这是一种作弊行为,它不允许我在一侧使用不同的颜色

\path[shade,draw] (0,0,3) -- (3,0,3)--(3,3,3)--(0,3,3)--cycle;
\foreach \x in {0,1,2}
{
    \foreach \y in {0,1,2}
    {
        \path[draw] (\y,\x,3) -- (\y+1,\x,3) -- (\y+1,\x+1,3) -- (\y,\x+1,3)--cycle; % breite,länge,tiefe
    }   

    \foreach \y in{0,1,2}
    {   
        \path[draw,fill=green] (\y,3,\x+1) --(\y+1,3,\x+1) -- (\y+1,3,\x) -- (\y,3,\x)--cycle;
    }

    \foreach \y in{0,1,2}
    {   
        \path[draw, fill=red] (3,\y,\x+1) -- (3,\y,\x) -- (3,\y+1,\x) -- (3,\y+1,\x+1)--cycle; % breite,länge,tiefe
    }
}

答案1

我自己解决了这个问题。这就是我想要的: 魔方

解决办法很简单。

\shade[draw,right color=red!10, left color=red!20]
\shade[draw,right color=orange!20, left color=red!30]
\shade[draw,right color=blue!30, left color=red!40]

这让阴影知道它需要以什么强度开始,下一个矩形从前一个矩形结束的地方开始。所以这是一个全局流程。仍然欢迎更好的解决方案:D

相关内容