考虑以下 TIKZ 代码,产生 3 个突出显示的绿色顶点。
\documentclass{standalone}
\usepackage{tikz}
\tikzstyle{mycircle}=[draw, circle, minimum height=2.5mm]
\tikzstyle{mygreen}=[draw=green!80!black,fill=green!80!black!20!white]
\usetikzlibrary{backgrounds}
\begin{document}
\begin{tikzpicture}[transform shape]
\draw (4, 0) node[mycircle, mygreen] (V0) {};
\draw (6.5, 1) node[mycircle, mygreen] (V1) {};
\draw (9.25, 0) node[mycircle, mygreen] (V2) {};
\scoped[on background layer] \filldraw [red!50, opacity=0.2, line width=3em, line join=round] (V0.center) -- (V2.center) -- (V1.center) -- cycle;
\end{tikzpicture}
\end{document}
答案1
您的问题对我来说不是很清楚。
对于它的第一个版本,您可以考虑我的评论或使用以下解决方案:
documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary{backgrounds}
\tikzstyle{mycircle}=[draw, circle, minimum height=2.5mm]
\tikzstyle{mygreen}=[draw=green!80!black,fill=green!80!black!20!white]
\begin{document}
\begin{tikzpicture}
\node (V=) [mycircle, mygreen] at (4, 0) (V0) {};
\node (V1) [mycircle, mygreen] at (6.5, 1) {};
\node (V2) [mycircle, mygreen] at (9.25, 0) {};
\scoped[on background layer]
{
\draw[red!10, line width=2.5em, line join=round] (V0.center) -- (V2.center) -- (V1.center) -- cycle;
\fill[red!25] (V0.center) -- (V2.center) -- (V1.center) -- cycle;
}
\end{tikzpicture}
\end{document}
对于第二个版本,如果我理解正确的话,解决方案可以是:
\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary{backgrounds}
\begin{document}
\begin{tikzpicture}[
mycircle/.style = {draw, circle, minimum size=2.5mm}
mygreen/.style = {draw=green!80!black,fill=green!80!black!20!white}
]
\node (V=) [mycircle, mygreen] at (4, 0) (V0) {};
\node (V1) [mycircle, mygreen] at (6.5, 1) {};
\node (V2) [mycircle, mygreen] at (9.25, 0) {};
\scoped[on background layer]
\filldraw[red!25, line width=2.5em, line join=round] (V0.center) -- (V2.center) -- (V1.center) -- cycle;
\end{tikzpicture}
\end{document}
笔记:的功能opacity
是使填充(或线条)透明,即其后面的图形可见。由于这个原因,在您的示例中,填充的一部分(即节点之间零宽度线之间的颜色区域)覆盖了实际线的内半部分。因此,覆盖的线条部分可以通过填充看到。
要使线条和填充颜色相同,填充颜色不应为透明。要使填充更亮,请更改填充颜色,例如从red!25
更改为red!0
。
附录(题外话): 作为练习,如何使上述 MWE 代码更短:
\documentclass[tikz, margin=3mm]{standalone}
\begin{document}
\begin{tikzpicture}[
mycircle/.style args = {#1/#2}{circle,
draw=#1, semithick, fill=#2,
minimum size=2.5mm},
mycircle/.default = green!80!black/green!80!black!20!white
]
\begin{scope}[nodes=mycircle]
\filldraw[red!10, line width=5mm, line join=round]
(0.00,0) node {} --
(2.50,1) node {} --
(5.25,0) node {} -- cycle;
\end{scope}
\end{tikzpicture}
\end{document}
结果和以前一样。