我正在使用 TikZ 力导向图库,并想在三个图形节点之间绘制一个填充三角形。我本以为这样就可以了,但它只绘制了三角形边界而没有任何填充:
\usetikzlibrary{graphs,graphdrawing} \usegdlibrary{trees}
\begin{tikzpicture}
\graph [tree layout, nodes={draw}]
{ a -- b,
b -- c,
c -- a,
c -- d};
\path[red,draw,fill=green] (a) -- (b) -- (d) -- (a);
\end{tikzpicture}
有人知道我这里遗漏了什么吗?提前感谢您的帮助!
答案1
使用节点名称而不指定特定坐标不会为您提供闭合路径,因此fill
不起作用。您可以使用
\path[red, draw, fill=green] (a.center) -- (b.center) -- (d.center) -- (a.center);
on background layer
但这可能不是您想要的,因为填充的三角形将与节点重叠。您可以使用库放置三角形backgrounds
,这也要求您使用(或任何页面颜色)放置fill
节点。white
a
请注意,从到的红色边缘b
位于背景层上,因此被黑色边缘覆盖。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{graphs, graphdrawing, backgrounds} \usegdlibrary{trees}
\begin{document}
\begin{tikzpicture}
\graph [tree layout, nodes={draw, fill=white}]
{ a -- b,
b -- c,
c -- a,
c -- d};
\scoped[on background layer]\path[red, draw, fill=green] (a.center) -- (b.center) -- (d.center) -- (a.center);
\end{tikzpicture}
\end{document}