通过三角计算在两点之间画一条线

通过三角计算在两点之间画一条线

假设我有两个点在单位圆上分别对应于 x 轴的 30 度和 60 度。

我想在这两点之间画一条线。

\documentclass[border=5mm]{standalone}

\usepackage{tikz}  
\usepackage{calculator}  
\usetikzlibrary{rulercompass}  
\usetikzlibrary{intersections,quotes,angles}  
\usetikzlibrary{calc}

\begin{document}  
\begin{tikzpicture}  
  \draw (\cos(30), \sin(30)) -- (\cos(60), \sin(60));  
\end{tikzpicture}
\end{document}

但这并没有执行。

正确的方法是什么?

答案1

你是几乎有两件事需要解决:

  1. \cos是定义用于排版的宏cos。要让 PGF 将其解析为余弦函数,您必须删除反斜杠,并让其将三个字母c, o,解析s为函数名称。

  2. 当 TiZ 查找坐标时使用分隔宏,因此当您执行此操作时,它会在和下一个(cos(30), sin(30))之间查找某个东西,即,事情会变得很奇怪 :)。为了避免这种情况,您可以将括号“隐藏”在括号中:。()cos(30({cos(30)}, {sin(30)})

那么它将起作用:

\documentclass[border=5mm]{standalone}

\usepackage{tikz}
\usepackage{calculator}
\usetikzlibrary{rulercompass}
\usetikzlibrary{intersections,quotes,angles}
\usetikzlibrary{calc}

\begin{document}
\begin{tikzpicture}
  \draw ({cos(30)}, {sin(30)}) -- ({cos(60)}, {sin(60)});
\end{tikzpicture}
\end{document}

答案2

另外,Phelype Oleinik 已经回答并解释过这个问题。

TikZ 还支持极坐标。因此,该示例可以简化为

\documentclass[border=5mm, tikz]{standalone}
\begin{document}
  \tikz\draw (30:1) -- (60:1);
\end{document}

结果

答案3

PSTricks 解决方案只是为了好玩!

\documentclass[pstricks,border=12pt]{standalone}
\begin{document}
\pspicture(-1,-1)(1,1)
\psline(1;30)(1;60)
\endpspicture
\end{document}

相关内容