透明


透明

绘制图形图像时,如果后绘制的部分与先绘制的部分区域有重叠,后绘制的部分会遮盖 先绘制的部分,有时这是我们不需要的。如果希望能透过后绘制的部分看到先绘制的部分, 就需要使用透明功能。

线的透明度用选项

draw opacity=透明度
设置,“透明度”的值在0和1之间,1表示全透明,0表示不可见,0.5表示半透明。比如
\begin{tikzpicture}[line width=1ex]
\draw (0,0) -- (3,1);
\filldraw [fill=examplefill,draw opacity=0.5] (1,0) rectangle (2,1);
\end{tikzpicture}

同时指定勾勒和填充的透明度用选项

opacity=透明度
单独指定填充透明度用选项
fill opacity=透明度
文本的透明度用选项
text opacity=透明度
其中“透明度”的含义是一样的。比如
\begin{tikzpicture}[every node/.style={fill,draw}]
\draw[line width=2mm,blue!50,line cap=round] (0,0) grid (3,2);
\node[opacity=0.5] at (1.5,2) {Upper node};
\node[draw opacity=0.8,fill opacity=0.2,text opacity=1] at (1.5,0) {Lower node};
\end{tikzpicture}

最省事的办法是直接使用预先定义好的透明度

transparent
ultra nearly transparent
very nearly transparent
nearly transparent
semitransparent
nearly opaque
very nearly opaque
ultra nearly opaque
opaque
比如
\tikz{\fill[red] (0,0) rectangle (1,0.5);\fill[very nearly opaque] (0.5,0) rectangle (1.5,0.25); }

褪色

褪色就是透明度不是一成不变的,而是按照某个规律从完全不透明逐渐变得透明。 指定褪色用选项

path fading=名字
其中“名字”来自库或者自己定义的褪色。比如
\begin{tikzpicture}[path fading=south]
\fill [black!20] (0,0) rectangle (4,3);
\pattern [pattern=checkerboard,pattern color=black!30] (0,0) rectangle (4,3);
\fill [color=blue] (0.5,1.5) rectangle +(1,1);
\fill [color=blue,path fading=north] (2.5,1.5) rectangle +(1,1);
\fill [color=red,path fading] (1,0.75) ellipse (.75 and .5);
\fill [color=red] (3,0.75) ellipse (.75 and .5);
\end{tikzpicture}
tikz库“fadings”定义如下名字
west
east
north
south
circle with fuzzy edge 10 percent
circle with fuzzy edge 15 percent
circle with fuzzy edge 20 percent
fuzzy ring 15 percent
使用这个库,要在LaTeX导言中加入
\usetikzlibrary{fadings}

库中没有满意的,可以自己定义,用环境

\begin{tikzfadingfrompicture}[选项]
内容
\end{tikzfadingfrompicture}
或者命令
\tikzfading[选项]
在“选项”中用“name=”指定名字。

选项

fit fading=true/false
的值如果是true,tikz会重新计算褪色区域,使其适应路径。还可以用选项
fading transform=变换表达式
对褪色进行变换,其中“变换表达式”是各种坐标变化。一种简单的变换是旋转, 旋转的角度可以用 选项
fading angle=角度
指定。

除了路径褪色,还可以指定范围褪色,用选项

scope fading=名字
比如
\begin{tikzpicture}
\fill [black!20] (-2,-2) rectangle (2,2);
\pattern [pattern=checkerboard,pattern color=black!30] (-2,-2) rectangle (2,2);
\path [scope fading=south] (-2,-2) rectangle (2,2);
\fill[red] ( 90:1) circle (1);
\fill[green] (210:1) circle (1);
\fill[blue] (330:1) circle (1);
\end{tikzpicture}

当透明路径出现交叉时,为了获得正确的透明效果,要使用选项

transparency group


目录