我想知道是否可以自动找到图片中节点的位置,以便绘制与该节点连接的其他对象,而无需手动跟踪物理坐标。
例如,我想制作第二个 xy 轴,旋转它,在这个框架内制作一个点(相对于它),然后想从 (0,0) 画一条线到这个点。由于我旋转了第二个框架,因此很难跟踪我在旋转框架中绘制的所有对象的所有物理位置。
如果我能让 TikZ 帮我做这件事,那将很有用。为了清楚说明我的意思,下面是一个 MWE:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\fbox{
\begin{tikzpicture}
%first frame, the base frame
\draw [->] (0,0) -- (1,0) ;
\draw [->] (0,0) -- (0,1) ;
%second frame, rotate it by 45 degrees relative to the base
\draw[rotate around={-45:(2,2)}] [->] (2,2) -- (3,2) ;
\draw[rotate around={-45:(2,2)}] [->] (2,2) -- (2,3) ;
%draw a point, relative to the second frame
\draw[rotate around={-45:(2,2)}] [->] (2,2) -- (2.5,2.5) ;
\draw[rotate around={-45:(2,2)}] [fill=red] (2.5,2.5) circle(.25ex);
%now, I want to draw an arrow from (0,0) to the circle above.
%I can't just do this below, since frame 2 has rotated
%\draw [->,color=red] (0,0) -- (2.5,2.5) ;
\end{tikzpicture}
}
\end{document}
我现在需要从 (0,0) 画一个箭头到红色圆圈,但我现在不知道圆圈相对于图片的坐标,因为第 2 帧是旋转的。我必须计算它。我知道它相对于第 2 帧的坐标。
有没有办法标记它,并使用标签自动找到它相对于基准框架(即图纸本身)的坐标?
答案1
是的。您可以在红点处添加一个命名coordinate
的 (一种特殊类型的 )node
,并使用它来代替显式坐标。
第 17 章对此进行了描述节点及其形状手册。
\documentclass[tikz,border=2mm]{standalone}
\begin{document}
\begin{tikzpicture}
%first frame, the base frame
\draw [->] (0,0) -- (1,0) ;
\draw [->] (0,0) -- (0,1) ;
\begin{scope}[rotate around={-45:(2,2)}]
%second frame, rotate it by 45 degrees relative to the base
\draw[->] (2,2) -- (3,2) ;
\draw[->] (2,2) -- (2,3) ;
%draw a point, relative to the second frame
\draw [->] (2,2) -- (2.5,2.5) ;
\draw[fill=red] (2.5,2.5) circle(.25ex) coordinate (red dot);
\end{scope}
\draw [->,color=red] (0,0) -- (red dot) ;
\end{tikzpicture}
\end{document}