TikZ:带偏移的节点角度

TikZ:带偏移的节点角度

在 TikZ 中,我可以使用“name.angle”语法指定角度,在其他节点的边界上绘制一个节点。例如,以下代码:

\begin{tikzpicture}
\node[draw,circle] (A) at (0,0) {foo bar};
\node[draw,inner sep=1mm,fill=red] (B) at (A.30) {};
\end{tikzpicture}

产生此图,其中红色节点位于 A 的边界与一条线的交点处 30°,该线朝 30° 方向延伸,从 A 的中心开始,即 2 点钟方向:

图片。2 点钟方向的红色正方形围绕着一个节点

有什么方法可以得到类似的结果,但红色方块不在边界上,而是距离边界有一段距离?

答案1

通过使用calc图书馆:

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}
    \begin{tikzpicture}
        \node[draw,circle] (A) at (0,0) {foo bar};
        \node[draw,inner sep=1mm,fill=red] (B) at ($(A.30)+(30:5mm)$) {};
    \end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

你的意思是像yshiftxshift

\documentclass{article}

\usepackage{tikz}

\begin{document}
    
    \begin{tikzpicture}
        \node[draw,circle] (A) at (0,0) {foo bar};
        \node[draw,inner sep=1mm,fill=red,yshift=5pt,xshift=5pt] (B) at (A.30) {};
    \end{tikzpicture}
\end{document}

在此处输入图片描述

答案3

您可以使用pos键将节点放置在距离中心一定倍数半径的位置。在此示例中,正方形的中心位于半径的两倍处(pos=2)。

\documentclass[tikz,border=3mm]{standalone}
\begin{document}
\begin{tikzpicture}
 \node[draw,circle] (A) at (0,0) {foo bar};
 \path (A.center) -- node[draw,inner sep=1mm,fill=red,pos=2] (B) {} (A.30);
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案4

\documentclass[tikz, border=1 cm]{standalone}
\begin{document}
\begin{tikzpicture}
\node[draw,circle] (A) at (0,0) {foo bar};
\draw (A) +(30:2 cm) node[draw,inner sep=1mm,fill=red] {};
\end{tikzpicture}
\end{document}

距圆节点2cm的红色方块

相关内容