我想用斜率(在问题中前面计算)以 atan x 的形式表示切线的旋转角度。我可以使用角度让它工作,但我不想先手动计算。我希望黑线最终位于红线所在的位置,使用与黑线类似的计算。
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}[xscale=0.4, yscale=0.1]
% draw axis
\draw (-1.5,0) -- (6.5,0);
\draw (0,-10) -- (0,15);
% plot f(x)
\draw [domain=(-1:6)] plot (\x,\x*\x-3*\x-4);
% plot secant line
\draw[dashed] (-1,0) -- (6,14);
% plot tangent line
\draw [rotate around={{180*atan(2)/pi}:(2.5,-5.25)}] (-2,-5.25) -- (7,-5.25);
\draw [red, rotate around={{63.43}:(2.5,-5.25)}] (-2,-5.25) -- (7,-5.25);
% plot cirles as points
\foreach \x/\y in {-1/0,2.5/-5.25,6/14}{\draw [fill=black] (\x,\y) ellipse (0.1cm and 0.4cm);}
\end{tikzpicture}
\end{document}
短暂性脑缺血。
答案1
要调试该问题,只需\pgfmathparse... \pgfmathresult
打印出公式的值,您就会立即看到问题:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\pgfmathparse{180*atan(2)/pi}\pgfmathresult
\end{document}
打印出 3634.56235,而您想要的是 63 左右的某个值。将其更改为即可atan(2)
得到所需的结果。
解释一下,TikZ 默认使用度数而不是弧度来表示三角函数 →使用 pgfplots (cos、sin 和 tan 等三角函数) 绘制不正确的图。
无论如何,解决方法很简单
%!TEX TS-program = xelatex
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}[xscale=0.4, yscale=0.1]
% draw axis
\draw (-1.5,0) -- (6.5,0);
\draw (0,-10) -- (0,15);
% plot f(x)
\draw [domain=(-1:6)] plot (\x,\x*\x-3*\x-4);
% plot secant line
\draw[dashed] (-1,0) -- (6,14);
% plot tangent line
\draw [rotate around={{atan(2)}:(2.5,-5.25)}] (-2,-5.25) -- (7,-5.25);
\draw [red, rotate around={{63.43}:(2.5,-5.25)}] (-2,-5.25) -- (7,-5.25);
% plot cirles as points
\foreach \x/\y in {-1/0,2.5/-5.25,6/14}{\draw [fill=black] (\x,\y) ellipse (0.1cm and 0.4cm);}
\end{tikzpicture}
\end{document}