如何在 TikZ 中将两个节点置于中心并用圆弧和箭头连接?

如何在 TikZ 中将两个节点置于中心并用圆弧和箭头连接?

我在用 LaTeX 重现方程式时遇到了一些麻烦。我尝试了一下,但仍然不知道如何正确地锚定从节点到节点的路径。我正在尝试重现图像。

另外,是否有选项可以让第一个方程式居中,而云方程式则左对齐?居中作为环境始终使整个图形居中,而不仅仅是一个节点。

我想要复制的内容

到目前为止我得到了两个弧,但都不是我想要的:

\begin{tikzpicture}
    \node (E) at (2,0) {$a^2=\Big(b\cdot \sin (\alpha)\Big)^2+n^2$};
    \node[cloud, cloud puffs=15.7, cloud ignores aspect, minimum width=3cm, minimum height=0.5cm, align=center, draw] (C) at (-5,-2.2) {$h=b\cdot \sin (\alpha)$};
    \draw [thick, ->] (C) to [out=30,in=270,in looseness=0.25] (E);
    \draw [->] (C) to [out=90,bend right=45] (E);
\end{tikzpicture}

这给了我这个结果:

在此处输入图片描述

答案1

您可以使用 来做到这一点tikzmark。我添加了bending库以使箭头对齐得更好。

制作一个显示方程式并用 标记等号\tikzmark{<name>}。然后添加[remember picture, overlay]到您的 tikzpicture 并绘制箭头到({pic cs:<name>})。我添加了一个移位来放置箭头。

在此处输入图片描述

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{shapes,tikzmark,bending}

\begin{document}

\[a^2\tikzmark{eq}=\big(b\cdot \sin (\alpha)\big)^2+n^2\]
\begin{tikzpicture}[remember picture, overlay]  
    \node[cloud, cloud puffs=15.7, cloud ignores aspect, minimum width=3cm, minimum height=0.5cm, align=center, draw] (C) at (2,-.5) {$h=b\cdot \sin (\alpha)$};
    \draw [thick, ->] (C.east) to [out=0,in=270,in looseness=0.25] ([shift={(.2,-.1)}]{pic cs:eq});
\end{tikzpicture}
\end{document}

答案2

这可以实现你想要的。如果你不想让某些路径占用空间,只需将它们放在一个范围内,并将覆盖选项设置为该范围。但是,你需要在 tikz 环境后设置适当的垂直空间,以避免云节点与其余内容重叠。

\documentclass{article}
\usepackage{lipsum}
\usepackage{tikz}
\usetikzlibrary{shapes}

\begin{document}
{\noindent\centering\begin{tikzpicture}
    \node (E) at (0,0) {$a^2=\Big(b\cdot \sin (\alpha)\Big)^2+n^2$};
    \begin{scope}[overlay]
    \node[cloud,cloud puffs=15.7, cloud ignores aspect, minimum width=3cm, minimum height=0.5cm, align=center, draw] (C) at (-2.8,-1) {$h=b\cdot \sin (\alpha)$};
    \draw [thick, ->] (C.10) to [out=0,in=-90] ([xshift=-1cm,yshift=0.3cm]E.south);
    \end{scope}
\end{tikzpicture}\par\vspace{1cm}}
\lipsum[1]
\end{document}

在此处输入图片描述

相关内容