Tikz:n=5 且不含所有边的标准子图

Tikz:n=5 且不含所有边的标准子图

我知道有一种方法可以使用“graphs.standard”和“subgraph k_n”来获得一个看起来像完整星星的五节点图,如附图所示。 在此处输入图片描述

但是有没有可能告诉 LaTeX 我只需要它的某些边缘?我想在投影仪幻灯片上解释邻接表和矩阵,只需要其中的一些。

我是否需要自己绘制整个图形,或者我可以告诉 LaTeX 我想要的边缘?

答案1

这是一个可以帮你完成这项工作的宏\incomplete。语法如下

\incomplete[<radius>]{<num vertices>}{<edge list>}

在此处输入图片描述

上面的两个示例是使用\incomplete{5}{1/2,1/3,1/4,1/5,2/4,2/5}和创建的\incomplete{6}{1/2,2/3,3/4,4/5,5/6,6/1,2/4}

<radius>是可选的。默认值为1.5cm<edgelist>是一个逗号分隔的列表,其中每个条目的形式为vertex1/vertex2<edgelist>可以为空,例如\incomplete{5}{}

以下是代码:

\documentclass{article}

\usepackage{tikz}

\tikzset{vertex/.style={draw, circle, inner sep=1mm}}

\newcommand{\incomplete}[3][1.5cm]{\begin{tikzpicture}
\foreach \n in {1,...,#2}{\node[vertex]at({90-360/#2*(\n-1)}:#1)(\n){\n};}
\foreach \v/\w in {#3}{\draw(\v)--(\w);}
\end{tikzpicture}}

\begin{document}

\incomplete{5}{1/2,1/3,1/4,1/5,2/4,2/5}\hspace{2cm}\incomplete{6}{1/2,2/3,3/4,4/5,5/6,6/1,2/4}

\end{document}

答案2

通过指定图表简单的,可以修改图形宏的边,甚至可以使用特殊的-!-边规范将其删除:

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{graphs.standard}
\begin{document}

\begin{tikzpicture}
  \graph[nodes={circle,draw},simple] {
    subgraph K_n [n=5,clockwise];
    2 -!- 3 -!- 4 -!- 5 -!- 3;
  };
\end{tikzpicture}

\end{document}

已去除部分边缘的 K5

链接至文档中的解释

相关内容