获取 tkz 中某个点的 x 和 y 坐标?

获取 tkz 中某个点的 x 和 y 坐标?

是否可以使用 tkz 获取点的 x 或 y 坐标?特别是如果我有两个点 A=(a_1,a_2) 和 B=(b_1,b_2),我想要一个点 C=(a_1,b_2)。

这与从 pgfplots 中的坐标中提取 x/y 部分。不同之处在于,我要求在 tkz 中实现它的方法。

答案1

TkZ 点只是坐标节点。因此,您可以以相同的方式使用和定义它们。例如:

\documentclass{article}

\usepackage{tkz-euclide}

\begin{document}
\begin{tikzpicture}
    \tkzDefPoint(0,0){A}
    \tkzDefPoint(2,2){B}
    \path let \p1=(A), \p2=(B) in (\x1,\y2) node[coordinate] (C) {};
    \tkzDrawPoints(A,B,C)
\end{tikzpicture}
\end{document}

答案2

您可以使用 tikz 的可能性,不要忘记您可以同时使用 tikz 和 pgf 以及 tkz。另一种可能性是使用(下一个宏在 tkz 中)

\makeatletter
    \def\tkz@@extractxy#1{%
    \pgfextractx{\pgf@x}{\pgfpointanchor{#1}{center}}
    \pgfextracty{\pgf@y}{\pgfpointanchor{#1}{center}} 
    } 
\makeatother

例如但我没有测试它:

\makeatletter
\def\tkzExchangeCoord(#1,#2)#3{% 
\tkz@@extractxy{#1}%
\pgf@xa=\pgf@x\relax
\tkz@@extractxy{#2}%
\pgf@yb=\pgf@y\relax 
\path[coordinate](\pgf@xa,\pgf@yb) coordinate (#3);}
\makeatother

或更多本着 tkz 的精神

\makeatletter
\def\tkzExchangeCoord(#1,#2){% 
\tkz@@extractxy{#1}%
\pgf@xa=\pgf@x\relax
\tkz@@extractxy{#2}%
\pgf@yb=\pgf@y\relax 
\path[coordinate](\pgf@xa,\pgf@yb) coordinate (tkzPointResult);}
\makeatother

您可以将要点用于:

\tkzExchangeCoord(A,B)
\tkzGetPoint{H}

相关内容