使用 TikZ 图的边权重

使用 TikZ 图的边权重

我正在使用 TikZ 绘制图形,并想添加边权重。我见过一些成功的例子,例如。但是,当我尝试做同样的事情时,它不起作用。有人知道原因吗?非常感谢!

以下是我当前的代码:

\documentclass{article}
\usepackage{tikz}
\usepackage{caption}
\begin{document}
\tikzstyle{every node}=[circle, draw, fill=black!100, inner sep=0pt, minimum width=4pt]
\begin{figure}[h]
    \centering
    \begin{tikzpicture}
    \foreach \r in {1,...,4}
    {
        \foreach \s in {1,...,4}
        {
            \node (\r\s) at ({cos(\r*90)*(2+sqrt(2)*0.5*cos(45+\s*90))-sin(\r*90)*(sqrt(2)*0.5*sin(45+\s*90))},{sin(\r*90)*(2+sqrt(2)*0.5*cos(45+\s*90))+cos(\r*90)*(sqrt(2)*0.5*sin(45+\s*90))}) {};
        }
        \foreach \s in {5,6}
        {
            \node (\r\s) at ({cos(\r*90)*(2)-sin(\r*90)*(1+sqrt(3))*(\s-5.5)},{sin(\r*90)*(2)+cos(\r*90)*(1+sqrt(3))*(\s-5.5)}) {};
        }
        \draw[-] (\r1)--(\r2);
        \draw[-] (\r3)--(\r4);
        \draw[-] (\r2)--(\r3);
        \draw[-] (\r4)--(\r1);
        \draw[-] (\r5)--(\r2);
        \draw[-] (\r5)--(\r3);
        \draw[-] (\r6)--(\r4);
        \draw[-] (\r6)--(\r1);
    }
    \draw[-] (16)--(25);
    \draw[-] (26)--(35);
    \draw[-] (36)--(45);
    \draw[-] (46)--(15);
    \end{tikzpicture}
    \caption*{\footnotesize{Figure 2}}
\end{figure}
\end{document}

代码目前看起来像: 在此处输入图片描述

我的目标是: 在此处输入图片描述

我尝试过,像成功示例中的解决方案,但在我的情况下失败了,我添加了\draw (16) -- node {weight} (34);,然后它变成: 在此处输入图片描述

答案1

您定义了实心圆节点样式每一个节点,这也适用于权重标签,正如 Qrrbrbirlbel 在评论中所提到的。

仅在图形节点上使用该样式。顺便说一句,\tikzstyle无论如何都已过时,请使用\tikzset或将样式定义为选项tikzpicture

一个快速的解决方法是覆盖标签节点的“每个节点”样式:

\draw[-] (16) edge node [above left,draw=none,fill=none] {k} (25);

但是一旦您删除了“每个节点”样式,您就可以使用edge ["k"]quotes库的语法,自 Tikz 3.0 起。

相关内容