除以 TikZ 座標中的總和

除以 TikZ 座標中的總和

我想將數學計算的座標(包含除以總和的項)輸入 TikZ。

例如,我想使用與此類似的語法:\def \cmd {1/(1+1)}

然後將其結果輸入TikZ 使用與此類似的語法:\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}

PS:circle(2)比起新文法,我比較喜歡舊文法circle[rađius=2cm]

相關內容