Арифметика углов TikZ

Арифметика углов TikZ

Я столкнулся с проблемой при попытке нарисовать векторные компоненты на картинке TikZ. Я хочу, чтобы TikZ мог сделать следующее: 1) Нарисовать линию длиной 4 под углом 0 градусов 2) Нарисовать линию из (4,0) длиной 3 под углом 90 градусов 3) Нарисовать гипотенузу из (4,3) длиной 5 под углом 210 градусов

Однако при использовании координатной арифметики и углов в TikZ я не могу правильно вычислить гипотенузу. Вот минимальный рабочий пример:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}

\begin{tikzpicture}
    \draw (0,0) coordinate (a);
    \draw (a) -- ($(a)+(0:4)$) coordinate (b);
    \draw (b) -- ($(b)+(90:3)$) coordinate (c);
    \draw (c) -- ($(c)+(210:5)$);
\end{tikzpicture}

\end{document}

Это производит:

сломанный треугольник

Я пытался найти решение и у меня закончились идеи. Любая помощь (включая указание на глупые ошибки) была бы очень признательна.

Привет, JLusk

решение1

Проблема в том, что конечный угол не равен 210; либо используйте соответствующее значение atan(3/4)+180, либо используйте cycle(или (a), поскольку вы уже указали начальную координату); обратите внимание, что вы можете использовать только одну \draw, а использование ++упрощает ваш код (нет необходимости в calcбиблиотеке):

\documentclass{article}
\usepackage{tikz}

\begin{document}

\noindent
\begin{tikzpicture}
    \draw (0,0) coordinate (a) -- 
    ++(0:4) coordinate (b) --
    ++(90:3) coordinate (c) --
    ++({atan(3/4)+180}:5);
\end{tikzpicture}\bigskip

\noindent
\begin{tikzpicture}
    \draw (0,0) coordinate (a) -- 
    ++(0:4) coordinate (b) --
    ++(90:3) coordinate (c) --
    cycle;
\end{tikzpicture}

\end{document}

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

Если вы настаиваете на четырех отдельных операциях, вы можете сделать

\begin{tikzpicture}
    \coordinate (a) at (0,0);
    \draw (a) -- +(0:4) coordinate (b);
    \draw (b) -- +(90:3) coordinate (c);
    \draw (c) -- +({atan(3/4)+180}:5);
\end{tikzpicture}

или просто

\begin{tikzpicture}
    \coordinate (a) at (0,0);
    \draw (a) -- +(0:4) coordinate (b);
    \draw (b) -- +(90:3) coordinate (c);
    \draw (c) -- (a);
\end{tikzpicture}

оба варианта по-прежнему без calc.

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