
Ich versuche, eine Datei zu erstellen, die den Satz des Pythagoras demonstriert.
In diesem Beispiel hat die Hypothenuse eine Länge von 4, während die Basis eine Länge von 3 hat. Die Höhe sollte also die Quadratwurzel aus 7 sein.
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node (A) at (0,0) {A};
\node (B) at (3,0) {B};
\node (C) at (0,\pgrmathparse{sqrt(7)}\pgfmathresult) {C};
\draw (A) -- (B) -- (C) -- (A);
\end{tikzpicture}
\end{document}
Ich kann den Knoten für die Höhe jedoch nicht platzieren. Das Ersetzen von Zeile 9 durch \node (C) at (0,sqrt(7)) {C};
behebt das Problem nicht. Was ist falsch an meinem Code?
Antwort1
Die Linie
\node (C) at (0,\pgfmathparse{sqrt(7)}\pgfmathresult) {C};
wird nicht funktionieren, da TikZ in den Koordinatenspezifikationen vollständig erweiterbaren Inhalt erwartet (und \pgfmathparse
dies nicht ist).
Da TikZ bereits alles in PGFmath wirft, können Sie es einfach sqrt(7)
direkt verwenden, müssen es aber )
vor dem Parser schützen, da dieser Parser nicht intelligent ist und alles bis zum nächsten erfasst )
– selbst wenn die Klammern dann nicht ausgeglichen sind.
Also brauchst du
\node (C) at (0, {sqrt(7)}) {C};
In diesem einfachen Fall können Sie jedoch auch einfach schreiben
\node (C) at (0, sqrt 7) {C};
Ich habe ein zweites TikZ-Bild hinzugefügt, das meiner Meinung nach eher nach etwas aussieht, was Sie meiner Meinung nach möchten.
Weil PGFmath, wenn es verzeihend ist, könnte man sogar
at (0, sqrt(7)
aber das ist kein Code Golf.
Code
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\node (A) at (0,0) {A};
\node (B) at (3,0) {B};
\node (C) at (0, sqrt 7) {C};
\draw (A) -- (B) -- (C) -- (A);
\end{tikzpicture}
\begin{tikzpicture}
\coordinate[label=left: $A$] (A) at (0, 0);
\coordinate[label=right:$B$] (B) at (3, 0);
\coordinate[label=left: $C$] (C) at (0, sqrt 7);
\draw (A) -- (B) -- (C) -- cycle;
\end{tikzpicture}
\end{document}