좌표에서 제곱근을 계산하는 올바른 방법은 무엇입니까?

좌표에서 제곱근을 계산하는 올바른 방법은 무엇입니까?

피타고라스 정리를 설명하는 파일을 만들려고 합니다.

이 예에서 빗변의 길이는 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)

하지만 이것은 코드 골프가 아닙니다.

암호

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

산출

여기에 이미지 설명을 입력하세요 여기에 이미지 설명을 입력하세요

관련 정보