使用 tikz 绘制圆圈和箭头

使用 tikz 绘制圆圈和箭头

我正在尝试绘制两个圆圈,一个在另一个的下方。我还想在圆圈之间画两个箭头(我更喜欢实心弯曲箭头)。

到目前为止,我尝试了以下代码,但它不起作用。有人能帮忙吗?

\documentclass[12pt]{beamer}

\usepackage{tikz}
\usepackage{pifont}

\usetikzlibrary{shapes.geometric,arrows}
\tikzstyle{circ} = [circle, minimum size=1cm, text centered, draw = black, fill = red!30]
\tikzstyle{arrow} = [thick,->,>=stealth]

\begin{document}
\begin{frame}{Introduction}
\begin{block}{Model}
\begin{figure}
    \centering
    \begin{tikzpicture}[node distance=1cm]
    \node (env) [circ] {Environment};
    \node (agent) [circ, below of=env] {Agent};
    \draw [arrow] (env) -- (agent);
    \draw [arrow] (agent) -- (env);
    \end{tikzpicture}
\end{figure}
\end{block}
\end{frame}
\end{document}

答案1

我猜你正在寻找这个:

在此处输入图片描述

  • 对于上图,我使用了 TikZ 库positioning并使用了它的语法(观察和below=of env的顺序差异)。以此来定义节点边界之间的距离。=ofnode distance

  • 当您定义节点之间的距离(不使用positioning库)时,node distance请定义圆心之间的距离。因此,在您的情况下,它应该会显著增加(考虑到节点形状的大小)

  • 关于箭头,它是用于bend left边缘的选项。如果您希望弯曲比上图显示的更弯曲,那么只需添加角度即可弯曲,例如bend left=45

  • 我留给您进一步的样式定制。您可以轻松更改箭头和形状边框的粗细、颜色、文本大小等。

  • 注意,不推荐使用\tikzstyle{...} = [...]s 。建议使用\tikzset{ ... }或将样式定义为 选项,tikzpicture如下面 MWE 中所做的那样。

\documentclass[12pt]{beamer}

\usepackage{tikz}
\usetikzlibrary{arrows.meta, 
                positioning}
\usepackage{pifont}

\begin{document}
\begin{frame}{Introduction}
\begin{block}{Model}
\begin{figure}
    \centering
    \begin{tikzpicture}[
    node distance = 1cm,
      circ/.style = {circle, draw, fill = red!30,
                     minimum size=1cm, align=center},
every edge/.style = {draw, very thick, -Stealth, bend left}
                        ]
    \node (env)   [circ] {Environment};
    \node (agent) [circ, below=of env] {Agent};
    \draw   (env)   edge[bend left] (agent)
            (agent) edge[bend left] (env);
    \end{tikzpicture}
\end{figure}
\end{block}
\end{frame}
\end{document}

相关内容