以 TikZ 坐标系中的和进行除法

以 TikZ 坐标系中的和进行除法

我想将包含除以和的项的数学计算坐标输入到 TiZ。

例如,我想使用与此类似的语法:\def \cmd {1/(1+1)}

然后将其结果输入到 TiZ 使用类似这样的语法:\coordinate (P) at (0,\cmd);

我之所以询问是因为我在循环\def中使用该命令\foreach,其中定义的命令的值会随着\foreach循环的每个值而改变。

以下是 MWE:

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\def \myFraction {3/(2+1)}
\fill[red] (0,0) circle [radius=\myFraction]; % Works!
%\fill[green] (3,\myFraction) circle [radius=1]; % Does not work. :(
\end{tikzpicture}
\end{document}

重要的是维持分数的“2+1”结构。

答案1

使用括号括起来\myFraction

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\def \myFraction {3/(2+1)}
\fill[red] (0,0) circle [radius=\myFraction]; % Works!
\fill[green] (3,{\myFraction}) circle [radius=1]; % Does not work. :(
\end{tikzpicture}
\end{document}

在此处输入图片描述

或者,你可以\myFraction用附加括号来定义

\def \myFraction {{3/(2+1)}}

然后使用\myFraction(不带括号)

\fill[green] (3,\myFraction) circle [radius=1];

答案2

我会用declare function来定义常量和计算变量。现代观点认为所有常量、参数、变量、函数都只是变量。代码更简洁一些。

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[declare function={a=-2;b=a+4;}]
\def\myFraction{3/(2+1)}
\fill[red] (0,0) circle(\myFraction); 
\fill[green] (3,{\myFraction}) circle(1); 
\fill[blue] (3,a) circle(1); 
\fill[magenta] (7,a+1) circle(b);
\end{tikzpicture}
\end{document}

circle(2)PS:与新语法相比,我更喜欢旧语法circle[rađius=2cm]

相关内容