如何使用一个点的 x 坐标和另一个点的 y 坐标?

如何使用一个点的 x 坐标和另一个点的 y 坐标?

可能重复:
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

您可以使用正交坐标系标识符-||-。它们表示第一个的垂直分量和第二个的水平分量-|,反之亦然|-

我已将coordinates 转换为nodes 以显示位置。

\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}

结果完全一样...

相关内容