pgfmathsetmacro、pgfmarthparse、pgfmathresult 定义带有计算的命令

pgfmathsetmacro、pgfmarthparse、pgfmathresult 定义带有计算的命令

tikz我对使用和包还很陌生pgf,我很难理解如何/何时使用pgfmathsetmacropgfmathparsepgfmathresult。我遇到以下问题:我试图定义一个我想在 TikZ 内部使用的线性变换命令。变换由以下公式给出

在此处输入图片描述

我考虑定义一个命令,该命令接受输入参数和预定义的值,a并返回映射的坐标,然后我将在定义中使用它。这是一个 MWE:bcd\coordinate

\documentclass[]{standalone}
\usepackage{tikz}

\begin{document}
\usetikzlibrary{math}

% Define mapping coordinates to map [a,b] -> [c,d]. Do it separately for x and y
\tikzmath{\ax = 1; \bx = 2;
          \ay = 1; \by = 2;
          \c = 0;  \d = 1;}

% Define the transformation as a new command that uses pgf's math engine. It takes 1 input argument
% I don't know how to define this properly, it does not give me any error but I think it is wrong
\newcommand{\transformX}[1]{\pgfmathparse{((\c+\d) + (\d-\c)*((2*{#1} - (\ax+\bx))/(\bx-\ax)))/2}\pgfmathresult}
\newcommand{\transformY}[1]{\pgfmathparse{((\c+\d) + (\d-\c)*((2*{#1} - (\ay+\by))/(\by-\ay)))/2}\pgfmathresult}

\begin{tikzpicture}[x=1in,y=1in]
    \coordinate (myCoord) at (\transformX{1.5},\transformY{1.4}); % error
\end{tikzpicture}
\end{document}

我以为pgfmathsetmacropgmathparse或者类似的函数应该可以解决问题,但我不知道如何实现它们。我读过这个帖子这个帖子(我相信后者与我想要实现的目标非常相似)但我无法适应我的情况。

有什么想法吗?谢谢!

相关内容