理解 TikZ 边界锚点

理解 TikZ 边界锚点

考虑以下 MWE:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
    \node(a)[rectangle,draw,minimum size=3cm]{};
        \node [fill,circle] at (a.45){};

    \node(b)[below=1cm of a,rectangle,draw,minimum width=5cm,minimum height=3cm]{};
        \node [fill,circle] at (b.45){};
\end{tikzpicture}
\end{document}

在第二个节点中,我希望b.45边框锚点位于形状的东北角,就像在第一个节点中一样。

我认为这取决于节点的形状:如果它不是方形边框锚点“移动”。

有没有办法.45不用反复试验就能预测边界锚点的位置?

答案1

如您所见,第二个节点不是正方形而是矩形,因为您添加了选项,minimum width=5cm,minimum height=3cm,而minimum size高度和宽度都固定为相同的值。

下面进一步说明。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning,angles,quotes}
\begin{document}
\begin{tikzpicture}
    \node(a)[rectangle,draw,minimum size=3cm]{};
        \node [draw,fill,circle] at (a.45){};
        \coordinate (O) at (a.center);
        \draw(a.center) -- +(45:2cm)coordinate(A) (a.center) -- +(0:2cm)coordinate(B);
        \path pic[draw, angle radius=7mm,"45",angle eccentricity=1.3] {angle = B--O--A};

    \node(b)[draw,below=1cm of a,rectangle,draw,minimum width=5cm,minimum height=3cm]{};
        \node [fill,circle] at (b.45){};
  \draw(b.center) -- +(45:2cm) (b.center) -- +(0:2cm);
  \coordinate (OO) at (b.center);
        \draw(b.center) -- +(45:2cm)coordinate(AA) (b.center) -- +(0:2cm)coordinate(BB);
        \path pic[draw, angle radius=7mm,"45",angle eccentricity=1.3] {angle = BB--OO--AA};
\end{tikzpicture}
\end{document}

在此处输入图片描述

下面是另一个例子:

\documentclass[11pt, oneside]{article}
\usepackage{tikz}
\begin{document}
  \begin{tikzpicture}[]
  \node[draw=red,minimum size=2cm] at (0,0){};
  \node[draw=blue,minimum width=3cm,minimum height=1cm] at (0,0){};
    \foreach \x in {45,90,...,360}
    \draw (0,0) -- (\x:4cm)node[pos=1.1]{\x};

  \end{tikzpicture}
\end{document}

在此处输入图片描述

底线:

b.45刚好与 x 轴正方向成 45 度角(固定)。如果你有一个以原点为中心的正方形,那么东北方向就位于该位置,否则就不是。

要找出b.45答案,只需画一条足够长的线:

\documentclass[11pt, oneside]{article}
\usepackage{tikz}
\begin{document}
  \begin{tikzpicture}[]
  \node[draw=blue,minimum width=5cm,minimum height=3cm] (b) at (0,0){};
   \draw (b.center) -- (45:4cm)node[pos=1.1]{45};

  \end{tikzpicture}
\end{document}

在此处输入图片描述

这条线和节点边界的交点就是你需要的点。

相关内容