在 LaTeX 中使用 pstricks 绘制半条抛物线

在 LaTeX 中使用 pstricks 绘制半条抛物线

我正在尝试创建一些关于动力系统的打字笔记,作为其中的一部分,我希望绘制一个稳定性图;这要求我有一个形式为的抛物线$r = x^2$,但是,抛物线的一半需要是虚线,另一半需要是实线。

我正在使用pstricks并且dvips->ps2pdf我的代码目前如下所示:

\begin{figure}[H]
   \centering
   \begin{pspicture}(5,5)
      \psline{->}(0,2.5)(5,2.5)
      \psline{->}(2.5,0)(2.5,5)
      \rput(2.75,4.8){$r$}
      \rput(4.8,2.25){$x$}
      \psparabola(4.08,0)(2.5,2.5)
   \end{pspicture}
\end{figure}

但我希望抛物线的一半是虚线,另一半是实线。有没有简单的方法可以做到这一点pstricks

答案1

上面的 pstricks 和 tikz 解决方案使用抛物线的参数版本,在二次函数上绘制许多点。在这两种情况下,您都可以使用单个贝塞尔曲线,使用我在此处的解决方案中的配方:如何使用 tikz 和贝塞尔曲线在 LaTeX 中绘制旋转抛物线?

这是代码的修改版本:

\documentclass{standalone}
\usepackage{pstricks}
\begin{document}

   \begin{pspicture}(5,5)
      \psline{->}(0,2.5)(5,2.5)
      \psline{->}(2.5,0)(2.5,5)
      \rput(2.75,4.8){$r$}
      \rput(4.8,2.25){$x$}
 %     \psparabola(4.08,0)(2.5,2.5)
      \psbezier(2.5,2.5)(3.027,2.5)(3.553,1.666)(4.08,0)
      \psbezier[linestyle=dashed](2.5,2.5)(1.973,2.5)(1.447,1.666)(0.92,0)
   \end{pspicture}

\end{document}

第一个抛物线弧的控制点来自三等分区间 2.5≤x≤4.08 和 0≤r≤2.5。如果你要做几个这样的计算,你可以写一些代码来进行这些计算。

在此处输入图片描述

答案2

以下是如何使用 轻松完成此pst-plot操作。您只需绘制两次函数,一次使用实线,一次使用虚线。请注意,pdflatex如果您加载,它可以完美地编译auto-pst-pdf pstricks--enable-write18,前提是使用开关 (MiKTeX) 或(TeX Live, MacTeX)启动 pdflatex -shell-escape。此外,还有一个\psaxes命令:

\documentclass[x11names, border=3pt]{standalone}
\usepackage{pstricks-add}
\usepackage{auto-pst-pdf}

\begin{document}

\psset{ algebraic, arrowinset=0.2, arrowsize=2.5pt, arrowlength=1, linejoin=1}
\begin{pspicture*}(-4.9,-1)(5,5)
\psaxes[arrows=->, linecolor=SlateGray3, ticks=none, labels=none]{->}(0,0)(-5,0)(5,5)[$x$, -120][$r$, -140]
\uput[dl](0,0){$O$}
\psset{linewidth=1.2pt, linecolor=IndianRed3, plotpoints=200}
\psplot{0}{5}{x^2}
\psplot[linestyle=dashed, dash=6pt 3pt]{-5}{0}{x^2}
\end{pspicture*}

\end{document} 

在此处输入图片描述

答案3

我不知道,PSTricks但我认为那pgfplots是目前最先进的技术 :)。但如果您需要使用,PSTricks我当然会删除我的答案。

另一方面,快速的 Google 搜索显示,该linestyle=dashed选项可能可以解决问题。只需将抛物线的一半一半画出来即可。

有一个非常强大的包叫做pgfplotsCTAN链接)它有很多功能,也许一开始它的文档有点让人不知所措。

如果您是 LaTeX 新手,我建议您使用其他软件绘制并将图片放入文档中。

但如果你有足够的时间,那么你应该考虑了解更多有关pgfplots底层tikz/pgf包的信息(CTAN链接)。

\documentclass{article}

% CTAN: https://www.ctan.org/tex-archive/graphics/pgf/contrib/pgfplots
\usepackage{pgfplots}

\begin{document}

\begin{figure}
\centering
    \begin{tikzpicture}
        \begin{axis}
            [
                title={Stable System},
                xlabel={$x$},
                ylabel={$r(x)$},
            ]
            %
            % right half
            \addplot
            [
                domain={0:5},
            ]{x^2};
            %
            % left half
            \addplot
            [
                domain={-5:0},
                dashed,
            ]{x^2};
        \end{axis}
    \end{tikzpicture}
\end{figure}

\end{document}

在此处输入图片描述

答案4

看起来,很难与...竞争。pgfplotspstrick pst-plots这方面,纯 TikZ 可以更接近:

\documentclass[border=3pt,tikz,preview]{standalone}
    \usetikzlibrary{arrows.meta}

    \begin{document}
\begin{tikzpicture}[
L/.style = {draw = blue!50!gray!30!white,-{Stealth[]}}
                    ]
\draw[L]    (-4, 0) -- (4,0) node[pos=1,below left] {$x$};    
\draw[L]    (0,-.1) node[below] {$0$} -- (0,5) node[below left] {$r(x)$}; 
% right half
\draw[red,thick,domain={-3:0},dashed]   plot (\x,{0.5*(\x)^2});
% left half
\draw[red,thick,domain={0:3}]           plot (\x,{0.5*(\x)^2});
\end{tikzpicture}
    \end{document}

在此处输入图片描述

因为问题是关于的pstrick,这个答案更多的是为了练习:-)(并展示其他可能性)。

相关内容