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