如何在乳胶中绘制带环的图形?

如何在乳胶中绘制带环的图形?

正如标题所述,如何在 latex 中绘制带环的图形?我了解到我可以使用森林在 latex 中绘制一棵树。例如,使用以下代码,我可以得到一棵简单的二叉树。1->2,1->3。

\begin{forest}
for tree={circle,draw}
[1[2][3]]
\end{forest}

然后,我想知道如何绘制带环的图形。例如,如何在 1 和 2 之间添加另一条边,以便节点 1 和 2 之间有一个环。1 -> 2,2->1。此外,我想知道如何绘制自环。即 1->1(从节点 1 开始到节点 1 结束的边)

答案1

Forest 是为绘制树木而设计的。如果您主要需要的是一棵树,您仍然可以使用它,只需进行一些手动干预。但是,如果您真的想绘制一个通用图表,最好使用为此设计的东西。

如果你想要的是基本上具有奇数非树位的树,这里有一个解决方案。

\documentclass[border=10pt,multi,tikz]{standalone}
\usepackage{forest}
\begin{document}
\begin{forest}
  for tree={%
    circle,
    draw,
    edge={->},
  }
  [1, tikz+={\draw () edge [loop above] ();}
    [2, edge path'={(!u.parent anchor) edge [bend right, <-]  (.north) (!u.parent anchor) edge [bend left] (.north east)}]
    [3]
  ]
\end{forest}
\end{document}

森林中非树

如果需要绘制通用图形,TiZ 提供内置的图形绘制功能,由 LuaTeX 提供。下面是使用 的代码binary tree layout,它对规范在技术上是否是树并不十分挑剔,如下所示。请注意,此代码必须使用 LuaTeX 进行编译 - 它将不是与其他引擎一起工作。

\RequirePackage{luatex85}
\documentclass[border=10pt,multi,tikz]{standalone}
\usetikzlibrary{graphs,graphdrawing}
\usegdlibrary{trees}
\begin{document}
\begin{tikzpicture}
  \graph
  [
    binary tree layout,
    nodes={draw, circle},
  ]
  {
    1 ->[bend right] 2 -> [bend right] 1 ->[loop above] 1 -> 3;
  }
  ;
\end{tikzpicture}
\end{document}

绘图解决方案

相关内容