TikZ - 仅对路径的填充部分进行着色,而不是偏移

TikZ - 仅对路径的填充部分进行着色,而不是偏移

我定义了一个偏离原点坐标的阴影区域,这样只需改变单个坐标就可以移动整个图形:

\coordinate (origin) at (0,0);
\shade [left color=blue, right color=red] (origin) ++ (90:0.4) ++ (170:1) --++ (90:0.6) --++ (0:0.2) --++ (-90:0.6) -- cycle;

我发现完成cycle了“笔”绘制的矩形的部分,而不是笔在绘制之前移动的偏移量,这对于这一点来说是完美的。

但是阴影不起作用,我猜这是因为它定义了origin (x=0)矩形和左边缘之间的渐变,而不是矩形左右部分之间的渐变。

有没有办法修复我的代码,以便矩形被阴影化,就像没有偏移的矩形一样?

答案1

如果你添加

\draw(current bounding box.north west) rectangle (current bounding box.south east);

你会明白为什么会发生这种情况。

在此处输入图片描述

即使你没有放下笔,你也在修改用于拉伸底层阴影的边界框。有更方便的选项来执行此类操作,例如移动包含所有内容的示波器

\usetikzlibrary{calc}% Just to be able to add points for the shift, not essential
\begin{tikzpicture}
\begin{scope}[shift={($(90:0.4)+(170:1)$)}]% or wherever you want to shift
\shade[left color=blue,right color=red](0,0)--++(90:0.6)--++(0:0.2)--++(-90:0.6)--cycle;
\end{scope}
\draw(current bounding box.north west) rectangle (current bounding box.south east);
\end{tikzpicture}

或者您可以移动初始坐标origin并将所有移动操作移动到其定义处。

相关内容