Teilen durch Summen in TikZ-Koordinaten

Teilen durch Summen in TikZ-Koordinaten

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);

\defDer 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 \foreachSchleife ä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}

Bildbeschreibung hier eingeben

Alternativ können Sie \myFractionmit 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 functionum Konstanten zu definieren und Variablen zu berechnen. Eine moderne Sichtweise betrachtet alle Konstanten, Parameter, Variablen, Funktionen alsVariablenDer Code ist etwas sauberer.

Bildbeschreibung hier eingeben

\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].

verwandte Informationen