可能重复:
TikZ:节点与另一个节点位于相同的 x 坐标,但指定了 y 坐标?
提取 TikZ 中任意点的 x,y 坐标
如何使用一个点的 x 坐标和另一个点的 y 坐标?我需要类似于
\coordinate (A) at (2,1);
\coordinate (B) at (3,0);
\coordinate (C) at (4,3);
\coordinate (D) at (5,-1);
\draw (xA,yB) -- (xC,yD);
答案1
您可以使用正交坐标系标识符-|
和|-
。它们表示第一个的垂直分量和第二个的水平分量-|
,反之亦然|-
。
我已将coordinate
s 转换为node
s 以显示位置。
\begin{tikzpicture}
\node (A) at (2,1) {a};
\node (B) at (3,0) {b};
\node (C) at (4,3) {c};
\node (D) at (5,-1) {d};
\draw (A |- B) -- (C |- D);
\end{tikzpicture}
答案2
这是一个比 Percusse 提出的解决方案不太方便但更接近最初需求的解决方案。
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\node (A) at (2,1) {a};
\node (B) at (3,0) {b};
\node (C) at (4,3) {c};
\node (D) at (5,-1) {d};
\draw let \p{A}=(A), \p{B}=(B), \p{C}=(C), \p{D}=(D) in
(\x{A},\y{B}) -- (\x{C},\y{D});
\end{tikzpicture}
\end{document}
结果完全一样...