TikZ 角度算法

TikZ 角度算法

我在尝试在 TikZ 图片中绘制矢量分量时遇到了问题。我希望能够让 TikZ 执行以下操作:1) 在 0 度处绘制一条长度为 4 的线 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

相关内容