我正在尝试绘制两个圆圈,一个在另一个的下方。我还想在圆圈之间画两个箭头(我更喜欢实心弯曲箭头)。
到目前为止,我尝试了以下代码,但它不起作用。有人能帮忙吗?
\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
的顺序差异)。以此来定义节点边界之间的距离。=
of
node 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}