如何制作闵可夫斯基图

如何制作闵可夫斯基图

我刚开始使用 LaTeX,需要一些帮助来创建这样的图表。但我不需要多条双曲线,只要一条就行。我的麻烦是使用 来制作双曲线\addplot。我能够使用 来制作简单的线条\draw,但有人告诉我\addplot这样更好,所以我也想用这种方式学习。有人能给我一个起点吗?

明可夫斯基图

答案1

您可以使用不同的定义域来绘制双曲线的各个部分,但需要进行一些调整以匹配顶点(或者您可以找到没有此问题的另一种参数形式)。

我选择 3,4 作为双曲线公式中的 x,y 缩放值。详细信息可以在非常全面的手册中找到pgfplots。请注意,\draw,\fill等等是 TikZ 命令。\addplot附带基于 TikZ 构建的软件包pgfplots。因此,您需要在脑海中理清一些相互作用。

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\begin{document}
\begin{tikzpicture}
\begin{axis}[no marks,grid]
\addplot {sqrt(3^2*(1+(x/4)^2))};
\addplot {-sqrt(3^2*(1+(x/4)^2))};
\begin{scope}[samples=351]
\addplot+[domain=1.33339:5] {sqrt(3^2*((x/4)^2)-1)};
\addplot+[domain=-5:-1.33333] {sqrt(3^2*((x/4)^2)-1)};
\pgfplotsset{cycle list shift=-2} % To match the color of the second previous cure
\addplot+[domain=1.33339:5] {-sqrt(3^2*((x/4)^2)-1)};
\addplot+[domain=-5:-1.33333] {-sqrt(3^2*((x/4)^2)-1)};
\addplot[thick] {3/4*x};
\addplot[thick] {-3/4*x};
\end{scope}
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容