![除以 TikZ 座標中的總和](https://rvso.com/image/476230/%E9%99%A4%E4%BB%A5%20TikZ%20%E5%BA%A7%E6%A8%99%E4%B8%AD%E7%9A%84%E7%B8%BD%E5%92%8C.png)
我想將數學計算的座標(包含除以總和的項)輸入 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]
。