我在图画中画了几个圆圈,想突出显示其中的一些。
\begin{tikzpicture}
\coordinate (A1) at (0,0);
\coordinate (A2) at (1,0);
\coordinate (A3) at (1,1);
\coordinate (B) at (1,0);
\draw (A1) -- (A2);
\draw (A1) -- (A3);
\draw (B) -- (A3);
\foreach \point in {A1,A2,A3,B} {
\fill [black,draw=white](\point) circle (3pt);
}
\pgfsetstrokeopacity{.3}
\pgfsetfillopacity{.3}
\fill [red,draw,rounded corners,line width=9pt] (A1) -- (A2) -- (A3) -- cycle;
\pgfsetstrokeopacity{1}
\pgfsetfillopacity{1}
\end{tikzpicture}
我希望 A 点周围的整个区域都是相同的颜色,但是笔触不透明度和填充不透明度会造成干扰。
有什么方法可以防止这种情况发生吗?
注意:在我的实际使用场景中,坐标太多,无法手动调整(否则我只会使用圆角填充,并手动计算点)。
答案1
我不确定您要做什么,但目前您只是在填充路径,而不是绘制路径。因此,例如,线宽不会影响可见输出。
我看不出有任何理由要采用\pgf...
这里而不是使用 TikZ 选项。
有一种可能性是:
\documentclass[tikz,border=10pt,multi]{standalone}
\begin{document}
\begin{tikzpicture}
\coordinate (A1) at (0,0);
\coordinate (A2) at (1,0);
\coordinate (A3) at (1,1);
\coordinate (B) at (1,0);
\draw (A1) -- (A2);
\draw (A1) -- (A3);
\draw (B) -- (A3);
\foreach \point in {A1,A2,A3,B} {
\fill [black,draw=white](\point) circle (3pt);
}
\filldraw [red, rounded corners, line width=9pt, opacity=.3] (A1) -- (A2) -- (A3) -- cycle;
\end{tikzpicture}
\end{document}
产生
较暗部分的原因是 TikZ 填充和绘制这些,因此那里的有效不透明度增加了一倍。
为了避免这种情况,您可以使用transparency group
:
\documentclass[tikz,border=10pt,multi]{standalone}
\begin{document}
\begin{tikzpicture}
\coordinate (A1) at (0,0);
\coordinate (A2) at (1,0);
\coordinate (A3) at (1,1);
\coordinate (B) at (1,0);
\draw (A1) -- (A2);
\draw (A1) -- (A3);
\draw (B) -- (A3);
\foreach \point in {A1,A2,A3,B} {
\fill [black,draw=white](\point) circle (3pt);
}
\begin{scope}[transparency group, opacity=.3]
\filldraw [red, rounded corners, line width=9pt] (A1) -- (A2) -- (A3) -- cycle;
\end{scope}
\end{tikzpicture}
\end{document}