绘制两个子图并进行交集

绘制两个子图并进行交集

我想制作这样的分子图 在此处输入图片描述

但我不知道如何实现这一点subgraph,我有以下 tikz 代码

    \tikz \graph [nodes={fill, circle, inner sep=2pt}, empty nodes] {
        {
            subgraph C_n [clockwise, n=6, name=A];
            subgraph C_n [clockwise, n=6, name=B];
        };
    };

只产生所需数字的一半

在此处输入图片描述

但我不知道如何完成另一半。

答案1

您实际上不希望有 6 + 6 个节点,而是 6 + 4 个节点,这就是我只打算n = 4在第二个子图使用的原因。但由于您希望将它们放置为 6 个节点的一部分,因此我们使用 6 个节点clockwise = 6来相应地调整角度。

由于circular placement规则默认从顶部开始,所以我们需要将附加内容放置在相对于彼此的正确位置。

但是,您希望将第二组节点放置在右侧,我将通过将xshift整个子图放置在六边形中心之间的长度上来实现这一点。

与 相比,子P_n图不连接第一个节点和最后一个节点C_n

与左侧节点集的连接将手动进行。在此示例中,我将这些边设为红色,并指示突出显示这些边以给出此答案。只需删除[red]并替换->--,即可让它们显示为所有其他边。

代码

\documentclass[tikz]{standalone}
\usetikzlibrary{graphs.standard}
\begin{document}
\tikz \graph [nodes={fill, circle, inner sep=2pt}, empty nodes] {
  subgraph C_n [clockwise, n=6, name=A];
  subgraph P_n [
    /tikz/xshift=2*cos(30)*\pgfkeysvalueof{/tikz/graphs/radius},
    clockwise=6, n=4, name=B];
  {A 2, A 3} ->[red] {B 1, B 4};
};
\end{document}

输出

在此处输入图片描述

相关内容