我有以下图片,我想让 1 和 3 之间的边和 1 和虚线之间的边变成实线。另外,如果我想在图片中的边缘上添加名称,我该怎么做?
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[transform shape]
\foreach \x in {1,...,4}{%
\pgfmathparse{(\x-1)*360/4}
\node[draw,circle,inner sep=0.15cm] (N-\x) at (\pgfmathresult:1.4cm) {\x};
}
\foreach \x [count=\xi from 1] in {1,...,4}{%
\foreach \y in {\x,...,4}{%
\path (N-\x) edge[ultra thin,-] (N-\y);
}
}
\end{tikzpicture}
\end{document}
答案1
所以这里有一些代码。既然你没有提到第二个节点,从 1 开始的边缘应该用虚线表示,我取了 4。你基本上需要在路径选项中告诉 tikz 如何绘制它。在这种情况下,我使用了[thin, densely dotted]
。要放置名称节点,你基本上必须选择你之前定义的节点,比如 x,然后选择适当的锚点,方法是说(x.north)
(x.west)
等等。然后你只需要正确地将名称节点与[left]
[right]
等等对齐。
\documentclass{article}
\usepackage{tikz}
\usepackage{ifthen}
\begin{document}
\begin{tikzpicture}[transform shape]
\foreach \x / \anchpos / \alignment in {1/east/right,2/north/above,3/west/left,4/south/below}{%
\pgfmathparse{(\x-1)*360/4}
\node[draw,circle,inner sep=0.15cm] (N-\x) at (\pgfmathresult:1.4cm) {\x};
\node at (N-\x.\anchpos) [\alignment] {Name};
}
\foreach \x [count=\xi from 1] in {1,...,4}{%
\foreach \y in {\x,...,4}{%
\ifthenelse{\x=1 \AND \(\y=3 \OR \y=4\)}{
\path (N-\x) edge[thin,-,densely dotted] (N-\y);
}{
\path (N-\x) edge[ultra thin,-] (N-\y);
}
}
}
\end{tikzpicture}
\end{document}