使用其他坐标的分量计算坐标

使用其他坐标的分量计算坐标

我正在尝试计算相对于其他两个坐标的新坐标。如何使用一个坐标的 x 分量和另一个坐标的 y 分量?提前致谢。

最小示例:

\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}
  \begin{tikzpicture}
    \node at (0,0) (a){a};
    \node at (1,1) (b){b};
    \node at ($ (*xcomponent of a*-1,*ycomponent of b*+1) $)
  \end{tikzpicture} 
\end{document}

答案1

您可以使用以下|-操作:

在此处输入图片描述

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}
  \begin{tikzpicture}
    \node at (0,0) (a){a};
    \node at (1,1) (b){b};
    \node at ($(a |- b) + (-1,1) $) {c};
  \end{tikzpicture} 
\end{document}

或者您可以使用该let操作(结果相同):

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}
  \begin{tikzpicture}
    \node at (0,0) (a){a};
    \node at (1,1) (b){b};
    \path let \p1=(a), \p2=(b) in
    node at (\x1 - 1cm, \y2 + 1cm) {c};
  \end{tikzpicture} 
\end{document}

答案2

您可以通过以下方式提取坐标提取 TikZ 中任意点的 x,y 坐标然后执行坐标计算:

在此处输入图片描述

笔记:

代码:

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

% https://tex.stackexchange.com/questions/33703/extract-x-y-coordinate-of-an-arbitrary-point-in-tikz
\newdimen\XCoord
\newdimen\YCoord
\newcommand*{\ExtractCoordinateX}[2]{\path (#2); \pgfgetlastxy{\XCoord}{\YCoord}; \xdef#1{\XCoord}}%
\newcommand*{\ExtractCoordinateY}[2]{\path (#2); \pgfgetlastxy{\XCoord}{\YCoord}; \xdef#1{\YCoord}}%


\begin{document}
  \begin{tikzpicture}
    \node at (0,0) (a){a};
    \node at (1,1) (b){b};
    
    \ExtractCoordinateX{\NewX}{a}
    \ExtractCoordinateY{\NewY}{b}
    \coordinate (X) at (\NewX,\NewY);
    
    \node [draw=red, shape=circle] at ($ (X)+ (-1,1) $) {X};
  \end{tikzpicture} 
\end{document}

相关内容