我定义了一个偏离原点坐标的阴影区域,这样只需改变单个坐标就可以移动整个图形:
\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
并将所有移动操作移动到其定义处。