tikz의 기능

tikz의 기능

나에게 기능이 있다면

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

"a"와 "b"가 필요하도록 이것을 어떻게 tikz 언어로 번역할 수 있습니까?

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}

이것은 내가 하고 싶은 일에 딱 맞습니다. 이 스크립트에서는 2+1=3 및 5+3=8이기 때문에 (0,0)--(3,3)에서 선을 그리고 (0,3)--(3,8)에서 또 다른 선을 그립니다.

관련 정보