Как правильно вычислить квадратный корень в координатах?

Как правильно вычислить квадратный корень в координатах?

Я пытаюсь создать файл, демонстрирующий теорему Пифагора.

В этом примере гипотенуза имеет длину 4, а длина основания — 3. Поэтому высота должна быть равна квадратному корню из 7.

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

Однако я не могу разместить узел для высоты. Замена строки 9 на \node (C) at (0,sqrt(7)) {C};не решает проблему. Что не так с моим кодом?

решение1

Линия

\node (C) at (0,\pgfmathparse{sqrt(7)}\pgfmathresult) {C};

не будет работать, поскольку TikZ ожидает полностью расширяемого содержимого в спецификациях координат (а \pgfmathparseэто не так).

Так как TikZ уже помещает все в PGFmath, вы можете просто использовать sqrt(7)его напрямую, но вам нужно защитить его )от парсера, потому что этот парсер не умен и будет захватывать все до следующего )— даже если скобки будут несбалансированными.

Итак, вам нужно

\node (C) at (0, {sqrt(7)}) {C};

Хотя в этом простом случае можно написать и просто

\node (C) at (0, sqrt 7) {C};

Я добавил вторую картинку из TikZ, которая, как мне кажется, больше похожа на то, что вы хотите.


Поскольку PGFmath прощает, вы даже можете сделать

at (0, sqrt(7)

но это не Code Golf.

Код

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

Выход

введите описание изображения здесь введите описание изображения здесь

Связанный контент