我目前有以下代码:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[scale=1]
\tikzstyle{every node}=[draw,shape=circle]
\path (0,0) node (p0) {$p_0$}
(-1.5,-1) node (p1) {$p_1$}
(-1.5,-2.5) node (p2) {$p_2$}
(1.5,-2.5) node (p3) {$p_3$}
(1.5,-1) node (p4) {$p_4$}
(0,-3.5) node (p5) { $p_5$};
\draw (p0) -- (p1)
(p0) -- (p1)
(p0) -- (p2)
(p0) -- (p3)
(p0) -- (p4)
(p0) -- (p5)
(p1) -- (p2)
(p1) -- (p3)
(p1) -- (p4)
(p1) -- (p5)
(p2) -- (p3)
(p2) -- (p4)
(p2) -- (p5)
(p3) -- (p4)
(p3) -- (p5)
(p4) -- (p5);
\end{tikzpicture}
\end{document}
但我的问题是这个名称是每个节点。而我只想要一个简单的点。我该怎么做?
答案1
如果你从代码中删除$p_1$
,...,那么你将获得$p_6$
另外,看看
是否有类似 \providetikzstyle 和 \providecommand 的东西?
详细说明这\tikzstyle
不是一个理想的命令。我在下面的代码中使用了另一种方法。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[every node/.style={draw,shape=circle,fill=blue}]
\path (0,0) node (p0) {}
(-1.5,-1) node (p1) {}
(-1.5,-2.5) node (p2) {}
(1.5,-2.5) node (p3) {}
(1.5,-1) node (p4) {}
(0,-3.5) node (p5) { };
\draw (p0) -- (p1)
(p0) -- (p1)
(p0) -- (p2)
(p0) -- (p3)
(p0) -- (p4)
(p0) -- (p5)
(p1) -- (p2)
(p1) -- (p3)
(p1) -- (p4)
(p1) -- (p5)
(p2) -- (p3)
(p2) -- (p4)
(p2) -- (p5)
(p3) -- (p4)
(p3) -- (p5)
(p4) -- (p5);
\end{tikzpicture}
\end{document}
答案2
就我个人而言,在这种情况下我更喜欢语法coordinate (p) at (x,y)
(我知道它们是相同的东西,但我不喜欢{}
。
然后代码可以是:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[dot/.style={draw,circle,minimum size=2mm,inner sep=0pt,outer sep=0pt,fill=blue}]
\path \foreach \x/\y [count=\k from 0] in { 0/0, -1.5/-1, -1.5/-2.5, 1.5/-2.5, 1.5/-1, 0/-3.5}
{coordinate [dot] (p\k) at (\x,\y)};
\draw \foreach \k [count=\j from 1] in {0,...,4}
\foreach \kk in {\j,...,5}
{(p\k)--(p\kk)};
\end{tikzpicture}
\end{document}
答案3
您还可以通过使用循环来大大减少代码量foreach
。另外,通过宏指定参数也是一个好主意,这样您就可以轻松改变图片的外观。在此示例中,只需更改初始命令即可更改节点大小、节点距离和节点填充颜色:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\pgfmathsetmacro{\minsize}{0.2cm}
\pgfmathsetmacro{\nodedist}{3}
\newcommand{\fillcolor}{black}
\begin{tikzpicture}[scale=1]
\tikzstyle{every node}=[draw,shape=circle,minimum size=\minsize,inner sep=0]
\foreach \x in {0,...,5}
\node[fill=\fillcolor] (p\x) at (\x*60:\nodedist) {};
\foreach \x in {0,...,4}
{ \pgfmathtruncatemacro{\startvalue}{\x+1}
\foreach \y in {\startvalue,...,5}
{\draw (p\x) -- (p\y);
}
}
\end{tikzpicture}
\end{document}