如何在 TikZ 中使用力导向布局填充形状?

如何在 TikZ 中使用力导向布局填充形状?

我正在使用 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}

相关内容