我该如何修复箭头错误

我该如何修复箭头错误

我正在使用 tikz 生成正弦和余弦图,每条曲线的末端都有箭头。箭头对于正弦曲线来说看起来不错,但对于余弦曲线来说却不是这样。为什么会出现这种情况?我该如何解决?

这是我的代码:

\documentclass[12pt]{article}
\usepackage{tikz}
\begin{document}
\begin{figure}[h]
    \centering
        \begin{tikzpicture}[scale=1,>=latex,x=0.5cm,y=2.0cm]
            \draw[<->,thick,domain=-4*pi:4*pi,samples=250,color=red] plot (\x,{sin(\x r)}) node[below right] {\footnotesize \textcolor{red}{$y= \sin(x)$}};
            \draw[<->,thick,domain=-4*pi:4*pi,samples=250,color=blue] plot (\x,{cos(\x r)}) node[right] {\footnotesize \textcolor{blue}{$y= \cos(x)$}};
            \draw[->,thick] (-14,0) -- (14,0) node[below left]{\footnotesize $x$};
            \draw[->,thick] (0,-2) -- (0,2) node[below right]{\footnotesize $y$};
        \end{tikzpicture}
    \caption{Graphs of sine and cosine}
\end{figure}
\end{document}

答案1

当 PGF 将箭头放在一条线上时,它会沿着最后一段路径“后退”,这样箭头尖端的末端就位于路径的末端。由于绘图(通常)是许多小直线,因此 PGF 会沿着最后一段直线后退。

当线段的梯度变化相对较慢时(如 MWE 中正弦曲线的端点),它看起来不错。否则(即 MWE 中余弦曲线的端点),它看起来就不好。

尽管 PGF 3.0 添加了许多用于弯曲和伸缩箭头的奇特功能,但我认为最简单的解决方案是延长第一段和最后一段线段。幸运的是,这很容易做到,只需使用shorten >shorten <消极的值。

\documentclass[border=5]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,bending}
\begin{document} 
        \begin{tikzpicture}[scale=1,>=latex,x=0.5cm,y=2.0cm]
            \draw[<->,thick,domain=-4*pi:4*pi,samples=250,color=red] plot (\x,{sin(\x r)}) node[below right] {\footnotesize \textcolor{red}{$y= \sin(x)$}};
            \draw[<->,thick,domain=-4*pi:4*pi,samples=250,color=blue,
shorten >=-4pt, shorten <=-4pt] 
plot (\x,{cos(\x r)}) node[right=5pt] {\footnotesize \textcolor{blue}{$y= \cos(x)$}};
            \draw[->,thick] (-14,0) -- (14,0) node[above left]{\footnotesize $x$};
            \draw[->,thick] (0,-2) -- (0,2) node[below right]{\footnotesize $y$};
        \end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

问题是 Ti 中的箭头Z 不是附加到直线上,而是位于直线末端。由于余弦曲线末端的曲率很大,因此结果很丑陋(箭头方向是正确的……)。

我添加了两种你可以尝试的技巧。第一种是将图形缩短为曲率较低的部分(绿线),另一种是绘制带有蓝色箭头的 y=1 的不可见图形。

% arara: pdflatex

\documentclass[12pt]{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}

\begin{document}
\begin{figure}
\centering
    \begin{tikzpicture}[scale=1,>=latex,x=0.5cm,y=2.0cm]
        \draw[<->,thick,domain=-4*pi:4*pi,samples=250,color=red] plot (\x,{sin(\x r)}) node[above right] {\footnotesize $y= \sin(x)$};
        \draw[-,thick,domain=-4*pi:4*pi,samples=250,color=blue] plot (\x,{cos(\x r)}) node[right] {\footnotesize $y= \cos(x)$};
        \draw[<->,>={LaTeX[]},draw opacity=0, domain=-4.1*pi:4.1*pi, color=blue] plot (\x, 1);
        \draw[<->,thick,domain=-3.9*pi:3.9*pi,samples=250,color=green] plot (\x,-{cos(\x r)}) node[right] {\footnotesize $y= -\cos(x)$};
        \draw[->,thick] (-14,0) -- (14,0) node[below left]{\footnotesize $x$};
        \draw[->,thick] (0,-2) -- (0,2) node[below right]{\footnotesize $y$};
    \end{tikzpicture}
    \caption{Graphs of sine and cosine}
\end{figure}
\end{document}

在此处输入图片描述

相关内容