Tikz:带坐标的数学

Tikz:带坐标的数学

我需要将节点的坐标提取到变量中。我试过了\pgfextractx

\documentclass[11pt]{article}
     \usepackage{fp}
     \usepackage{tikz}
     \usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
     \node (node1) at (0,0) {N1};
     \node (node2) at (2,0) {N2};
     \newdimen\varAX
     \pgfextractx{\varAX}{node1.center}
     \newdimen\varBX
     \pgfextractx{\varBX}{node2.center}
     \FPeval\varCX {clip(\varBX - \varAX)}
     \node at (\varCX,0) {N3};
\end{tikzpicture}
\end{document}

但看起来 FP 不能处理长度(pt、cm 等),我想这回头看看是合乎逻辑的......

此外,当移除 FP 并将第三个节点更改为时,\node at (\varBX,0) {N3};它向左偏移了一点。尽管它本应与 N2 重叠。

在此处输入图片描述

编辑

在我发布这个问题之后,我注意到你实际上不能用 来做类似的事情Node1.eastpgfextract这是最终代码的一部分。所以我需要一个全新的解决方案来获取如上所示的 X 值 ^

答案1

\pgfpointanchor{<point>}{<anchor>}

你可以使用它作为

\pgfextractx{\centerAx}{\pgfpointanchor{node1}{center}}

将 N3 置于 N1 和 N2 中点的完整示例:

\documentclass{article}
\usepackage{tikz}

\newdimen\centerAx
\newdimen\centerAy
\newdimen\centerBx
\newdimen\centerBy

\begin{document}
\begin{tikzpicture}
\node (node1) at (0,0) {N1};
\node (node2) at (2,0) {N2};
\pgfextractx{\centerAx}{\pgfpointanchor{node1}{center}}
\pgfextracty{\centerAy}{\pgfpointanchor{node1}{center}}
\pgfextractx{\centerBx}{\pgfpointanchor{node2}{center}}
\pgfextracty{\centerBy}{\pgfpointanchor{node2}{center}}
\node at (0.5\centerAx+0.5\centerBx,0) {N3};
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案2

您可以使用TikZ 库let中的语法calc

\begin{tikzpicture}
     \node (node1) at (0,0) {N1};
     \node (node2) at (2,0) {N2};
     \path let \p1=($(node2.west)-(node1.east)$) in node at (\x1,0) {N3};
\end{tikzpicture}

相关内容