如何在 tikz \draw 中存储命名节点的 x 或 y 值?

如何在 tikz \draw 中存储命名节点的 x 或 y 值?

上述问题的大部分已经得到回答:“使用calc tikzlibrarylet语法”

\begin{tikzpicture}
  \draw [help lines] (0,0) grid (4,4);
  \node (A) at (2,1) {A};
  \path let \p1 = (A) in node  at (\x1,3) {B};
\end{tikzpicture}

但它忽略了其他内容。如何在指令let内使用语法\draw?像这样:

\draw
  (5,0) node(A){}
  let \p1 = A     % This line borks everything. What is the right thing to do?
  (0,5) -- (\x1,5)
  ;

答案1

希望此解决方案确实理解了您的目标。似乎给定节点 A,您希望从 (0,5) 到 (\x1,5) 绘制一条线,其中 \x1 是 A 的坐标。并且您希望在一个draw指令中完成此操作。在本演示中,即从 A 到 B。

let命令保存了 A 的坐标,稍后可以使用 (\x1,\y1)。

在此处输入图片描述

代码

\documentclass{article}
\usepackage[margin=1cm]{geometry}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}

\begin{tikzpicture}
\draw  (5,0) node (A){A} let \p1 =(A) in node at (\x1,5){}  (5,0) --(\x1,5) node(B){B};
\end{tikzpicture}
\end{document}

更新:刚刚意识到 OP 想要 CB 行,所以这里给出了一个小的修改。

在此处输入图片描述

\begin{tikzpicture}
\draw  (5,0) node (A) {} let \p1 =(A) in node at (\x1,5){} (0,5) node(C){C} --(\x1,5) node(B) {B};
\end{tikzpicture}

相关内容