![在 LaTeX 中使用 pstricks 绘制半条抛物线](https://linux22.com/image/325456/%E5%9C%A8%20LaTeX%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20pstricks%20%E7%BB%98%E5%88%B6%E5%8D%8A%E6%9D%A1%E6%8A%9B%E7%89%A9%E7%BA%BF.png)
我正在尝试创建一些关于动力系统的打字笔记,作为其中的一部分,我希望绘制一个稳定性图;这要求我有一个形式为的抛物线$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
操作。您只需绘制x²
两次函数,一次使用实线,一次使用虚线。请注意,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
选项可能可以解决问题。只需将抛物线的一半一半画出来即可。
有一个非常强大的包叫做pgfplots
(CTAN链接)它有很多功能,也许一开始它的文档有点让人不知所措。
如果您是 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
看起来,很难与...竞争。pgfplots
在pstrick
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
,这个答案更多的是为了练习:-)(并展示其他可能性)。