用 TikZ 画三角函数相关的图像时, 要注意角度 (degree) 和弧度 (radian) 的转化.
例如画 $\arcsin x$, $x \in [-1,1]$, 在 TikZ 中函数名是 asin
, 直接得到的是 degree, 想要得到 radian, 需要函数 rad
. 例如 asin(0.5)
得到的是 $30$~(degree), 而 rad(asin(0.5))
得到的才是 $\frac\pi6$~(radian). 当然了, 仅仅需要画反三角函数的图像完全可以用参数方法 ({sin(\y r)}, \y)
, 前提是给 \draw
加一个参数 variable = \y
, 其中 (\y r)
代表 \y
的单位按照 radian 算. 另外还可以用函数 deg
转换 radian 到 degree, 即 deg(pi)
就直接是 $180$~(degree).
上图的代码如下, 有兴趣的可以看看 (Ubuntu 20.04 + TeX Live 2020 + XeLaTeX).
\documentclass{standalone}
\usepackage{tikz}
\usepackage{upgreek}
\begin{document}
\begin{tikzpicture}[>=stealth, scale=2, transform shape]
\draw[->] (-pi,0) node[below] {$-\uppi$} -- (-pi/2,0) node[below] {$-\frac\uppi2$} -- (-1,0) node[below] {$-1$} -- (1,0) node[below] {$1$} -- (pi/2,0) node[below] {$\frac\uppi2$} -- (pi,0) node[below] {$\uppi$} -- (3*pi/2,0) node[below] {$x$};
\draw[->] (0,-pi) node[left] {$-\uppi$} -- (0,-1) node[left] {$-1$} -- (0,1) node[left] {$1$} -- (0,pi) node[left] {$\uppi$} -- (0,1.2*pi) node[left] {$y$};
\draw[domain=-pi:pi,smooth,variable=\y] plot ({sin(\y r)},\y);
\draw[domain=-1:1,smooth,variable=\y] plot ({rad(asin(\y))},\y) node[right] {$x = \arcsin y$};
\draw[domain=-1:1,smooth,variable=\y] plot ({rad(acos(\y))},\y) node[left=1em] {$x = \arccos y$};
\foreach \i in {-1,-0.9,-0.8,...,1}
{
\draw ({rad(asin(\i))},\i) circle (1pt);
}
\foreach \i in {-1,-0.9,-0.8,...,1}
{
\draw ({rad(acos(\i))},\i) circle (1pt);
}
\end{tikzpicture}
\end{document}