绘制图形图像时,如果后绘制的部分与先绘制的部分区域有重叠,后绘制的部分会遮盖 先绘制的部分,有时这是我们不需要的。如果希望能透过后绘制的部分看到先绘制的部分, 就需要使用透明功能。
线的透明度用选项
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]tikz库“fadings”定义如下名字
\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}
west使用这个库,要在LaTeX导言中加入
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
\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