tikz 中的函数

tikz 中的函数

如果我有一个函数

function(a, b)
    print(a+b)

我怎样才能将其翻译成 tikz 语言,以便它需要“a”和“b”。

hello = 1
bye = 2

function(hello, bye)

输出结果为 3

答案1

该函数名为add。您可以用宏来包裹它。

\documentclass{article}
\usepackage{pgf}
\newcommand{\myaddandprint}[2]{\pgfmathparse{add(#1,#2)}\pgfmathprintnumber\pgfmathresult}
\newcommand{\myparseandprint}[1]{\pgfmathparse{#1}\pgfmathprintnumber\pgfmathresult}
\begin{document}
\pgfkeys{/pgf/declare function={hello=1;bye=2;}}
\pgfmathparse{add(hello,bye)}\pgfmathprintnumber\pgfmathresult

or \pgfmathparse{hello+bye}\pgfmathprintnumber\pgfmathresult

\myaddandprint{hello}{bye}

\myparseandprint{hello+bye}
\end{document}

在此处输入图片描述

如果您想要一些更能让人联想到 Python 语言的东西,也许tikzmath这就是您所寻找的。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{math}
\begin{document}
\tikzmath{integer \x, \y, \z;
\x = 1;
\y = 2;
let \z=\x+\y; 
print {$x=\x$, $y=\y$, $z=x+y=\x+\y=\z$};}
\end{document}

在此处输入图片描述

如果想要有可扩展的功能,可以使用xfp

\documentclass{article}
\usepackage{xfp}
\begin{document}
\begingroup\def\x{1}\def\y{2}\fpeval{\x+\y}\endgroup
\end{document}

只要你小心谨慎地做事,你可以将它与 pgf 混合,但你需要记住它会剥离单位。

答案2

\begin{tikzpicture}[declare function={yeet(\a,\b)=\a+\b;}]
\draw (0,0)--(3,3);
\draw (0,3)--({yeet(2,1)},{yeet(5,3)});
\end{tikzpicture}

这对于我想要做的事情来说非常完美。在这个脚本中,我从 (0,0)--(3,3) 画一条线,从 (0,3)--(3,8) 画另一条线,因为 2+1=3 且 5+3=8

相关内容