Wie berechnet man die Quadratwurzel in Koordinaten richtig?

Wie berechnet man die Quadratwurzel in Koordinaten richtig?

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 \pgfmathparsedies 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}

Ausgabe

Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben

verwandte Informationen