我正在尝试计算相对于其他两个坐标的新坐标。如何使用一个坐标的 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 坐标然后执行坐标计算:
笔记:
- 你应该
minimal
按照以下规定避开该课程为什么要避免使用最小类?
代码:
\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}