tikz 使用数学绘制抛物线

tikz 使用数学绘制抛物线

你好,我正在尝试使用绘制4-x^2区间内的抛物线。-2;2tikz

如果我使用此代码,我就得不到想要的情节:

\begin{tikzpicture}[domain=0:2, scale = 0.75]
\draw[black, line width = 0.50mm]   plot[smooth,domain=-2:2] (\x, {4-\x^2});
\end{tikzpicture}

如果我使用此代码,我就会得到所需的情节。

\begin{tikzpicture}[domain=0:2, scale = 0.75]
\draw[black, line width = 0.50mm]   plot[smooth,domain=0:2] (\x, {4-\x^2});
\draw[black, line width = 0.50mm]   plot[smooth,domain=-2:0] (\x, {4+\x^2});
\end{tikzpicture}

我的问题:谁能解释一下为什么第一个不起作用而第二个起作用吗?

谢谢

答案1

似乎 tikz 本身无法处理,\x^2因此(\x)^2标志会丢失。快速修复方法是使用\x*\x似乎有效的,就像(\x)^2

更简单的方法是使用pgfplots

\documentclass[a4paper]{article}
\usepackage{tikz,pgfplots}
\pgfplotsset{compat=1.13}
\begin{document}
% bad
\begin{tikzpicture}[domain=0:2, scale = 0.75]
\draw[black, line width = 0.50mm]   plot[smooth,domain=-2:2] (\x, {4-\x^2});
\end{tikzpicture}

% works
\begin{tikzpicture}[domain=0:2, scale = 0.75]
\draw[black, line width = 0.50mm]   plot[smooth,domain=-2:2] (\x, {4-\x*\x});
\end{tikzpicture}

% works
\begin{tikzpicture}[domain=0:2, scale = 0.75]
  \draw[black, line width = 0.50mm]   plot[smooth,domain=-2:2] (\x, {4-(\x)^2});
\end{tikzpicture}

% even more fun
\begin{tikzpicture}
  \begin{axis}[
    domain=-2:2,
    ]
    \addplot[no marks] {4-x^2};
  \end{axis}
\end{tikzpicture}

\end{document}

相关内容