在 TikZ 中将一个节点以某个角度与另一个节点保持一定距离吗?

在 TikZ 中将一个节点以某个角度与另一个节点保持一定距离吗?

正如标题所述,是否可以将一个节点放置在与另一个节点保持一定距离并与该节点保持一定角度的位置?

答案1

是的,TikZ 可以使用极坐标。不确定定义第二个节点的最佳方法是什么,这里有一种方法。

\documentclass{scrartcl}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
  \node (A) {A};
  \path (A) ++(30:2) node (B) [draw,fill=blue!20] {B};
\end{tikzpicture}
\end{document}

30是(30:2)角度,2 是距离。0° 表示向右,正方向是逆时针,因此节点B将位于 的右上方A

答案2

TikZ 允许你以极坐标指定位置和向量。以下是示例:

\begin{tikzpicture}
\node at (0,0) (a) {A node};
\node at (120:1cm) (b) {B node};
\path (a) ++(-45:2cm) node (c) {C node}; 
\end{tikzpicture}

答案3

您可以通过以下方式从某个角度和半径将节点位置 B 相对于另一个节点 A 移动:

\usepackage{tikz}
\begin{document}
 \begin{tikzpicture}
   \node (A) {A};
   \node (B) at ([shift=({240:1 cm})]A) {B};
 \end{tikzpicture}
\end{document}

答案4

还有另一种使用节点坐标系定义节点的方法:

\usetikzlibrary{calc}
\begin{tikzpicture}
\node[draw] (A) {A};
\node[draw,circle] 
    (node cs:name=B) at ($(node cs:name=A)+(30:2)$) {B};
\end{tikzpicture}

相关内容