
Estou tentando criar um arquivo demonstrando o teorema de Pitágoras.
Neste exemplo, a hipotenusa tem comprimento 4 enquanto a base tem comprimento 3. Portanto, a altura deve ser a raiz quadrada de 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}
No entanto, não consigo colocar o nó para altura. Trocar a linha 9 por \node (C) at (0,sqrt(7)) {C};
não resolve o problema. o que está errado com meu código?
Responder1
A linha
\node (C) at (0,\pgfmathparse{sqrt(7)}\pgfmathresult) {C};
não funcionará porque o TikZ espera conteúdo totalmente expansível em especificações de coordenadas (e \pgfmathparse
não é).
Como o TikZ já joga tudo no PGFmath você pode simplesmente usar sqrt(7)
diretamente, mas precisa proteger )
do analisador porque esse analisador não é inteligente e vai pegar tudo até o próximo )
- mesmo que os parênteses estejam desequilibrados.
Então, você precisa
\node (C) at (0, {sqrt(7)}) {C};
Embora, neste caso simples, você também possa escrever apenas
\node (C) at (0, sqrt 7) {C};
Adicionei uma segunda imagem do TikZ que acredito que se parece mais com algo que acredito que você deseja.
Porque o PGFmath, se perdoar, você poderia até fazer
at (0, sqrt(7)
mas este não é o Code Golf.
Código
\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}