![Teilen durch Summen in TikZ-Koordinaten](https://rvso.com/image/476230/Teilen%20durch%20Summen%20in%20TikZ-Koordinaten.png)
Ich möchte mathematisch berechnete Koordinaten, die Terme enthalten, die durch Summen geteilt werden, in Ti eingebenkZ.
Ich möchte beispielsweise etwas mit einer ähnlichen Syntax wie dies verwenden:\def \cmd {1/(1+1)}
und geben Sie dann das Ergebnis in Ti einkZ mit einer Syntax ähnlich dieser:\coordinate (P) at (0,\cmd);
\def
Der Grund für meine Frage ist, dass ich den Befehl innerhalb einer Schleife verwende \foreach
, wobei sich der Wert des definierten Befehls für jeden Wert der \foreach
Schleife ändert.
Hier ist ein 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}
Wichtig ist, dass die „2+1“-Struktur des Bruchs erhalten bleibt.
Antwort1
Verwenden Sie Klammern um \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}
Alternativ können Sie \myFraction
mit den zusätzlichen Klammern definieren
\def \myFraction {{3/(2+1)}}
und dann verwenden \myFraction
(ohne Klammern)
\fill[green] (3,\myFraction) circle [radius=1];
Antwort2
Ich würde verwenden, declare function
um Konstanten zu definieren und Variablen zu berechnen. Eine moderne Sichtweise betrachtet alle Konstanten, Parameter, Variablen, Funktionen alsVariablenDer Code ist etwas sauberer.
\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: Mir gefällt die alte Syntax circle(2)
besser als die neue circle[rađius=2cm]
.