提取(节点的)坐标和单节点路径技巧

提取(节点的)坐标和单节点路径技巧

如果有节点 (vector0) 和 (vector1),则一种方法可以获取

       ($(vector1)-(vector0)$)

就是写

      \path ($(vector1)-(vector0)$);
      \pgfgetlastxy{\XCoord}{\YCoord};

例如,这种方法出现在此主题

在哪里可以找到

\path(A); \pgfgetlastxy{\xA}{\yA}; %提取A的坐标

或者更准确地说,我上面描述的方法包括用(vector0)-(vector1)替换“A”。

另一个出现此方法的线程是 此主题

在哪里可以找到

\path(z)节点[下方] {$z$}; \pgfgetlastxy{\XCoord}{\YCoord};

问题。

简要来说:如何应该有人会这么做吗?

更详细地:

  • 如果 TikZ 程序中某个节点有节点 (vector0) 和 (vector1),那么有哪些值得注意的方法可以获取 ($(vector1)-(vector0)$) 的第一个和第二个坐标?
  • 应该使用哪种方法?何时使用?特别是,应该避免使用这种单节点路径技巧吗?
  • 特别是,如何更快地做到这一点,或多或少只用一行,例如通过编写类似

     \node (tempnode) at ($(vector1)-(vector0)$)[]{};
     \pgfgetlastxy {      code involving (tempnode)   } { another code involving (tempnode) };
    

答案1

  • 如果 TikZ 程序中某个节点有节点 (vector0) 和 (vector1),那么有哪些值得注意的方法可以获取 ($(vector1)-(vector0)$) 的第一个和第二个坐标?

let操作。

在此处输入图片描述

  • 应该使用哪种方法?何时使用?特别是,应该避免使用这种单节点路径技巧吗?

您应该只使用该let操作,因为它是唯一的高级方法。

  • 特别是,如何更快地完成此操作,或多或少只用一行,例如通过编写类似

let操作是路径的一部分,因此是一行,另请参见下面的示例。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}

\begin{tikzpicture}
  \node[draw,fill,circle,label={above:vector 0}] (vector0) at (1,2) {};
  \node[draw,fill,circle,label={above:vector 1}] (vector1) at (3,1) {};
  \draw let \p1=($(vector1)-(vector0)$) in
    (vector0) -- +(\x1,0) -- +(\x1,\y1);
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容