案例 0 使用\fnpnodes
并且案例 1 使用\curvepnodes
基于给定的函数创建节点。
\def\method#1{%
\ifcase#1
\fnpnodes[plotpoints=8]{1}{8}{\f[x]}{P}
\psxTick(/dx \pst@number\pst@dimb\space def dx 4 mul 1 add){x_j}
\or
\curvepnodes[plotpoints=8]{1}{8}{t|\f[t]}{P}
\psxTick(dt 4 mul 1 add){x_j}
\fi}
我已经知道 的dt
增量步长\curvepnodes
。现在我正在寻找 的增量步长\fnpnodes
。我尝试使用/dx \pst@number\pst@dimb\space def dx
但似乎不起作用。
\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-plot,pst-node}
\psset
{
algebraic,
ticks=none,
labels=none,
plotpoints=100,
}
\def\f[#1]{sin(3*#1)/2+#1/3+1}
\makeatletter
\def\method#1{%
\ifcase#1
\fnpnodes[plotpoints=8]{1}{8}{\f[x]}{P}
\psxTick(/dx \pst@number\pst@dimb\space def dx 4 mul 1 add){x_j}
\or
\curvepnodes[plotpoints=8]{1}{8}{t|\f[t]}{P}
\psxTick(dt 4 mul 1 add){x_j}
\fi}
\makeatother
\begin{document}
\begin{psgraph}(0,0)(-.5,-.5)(9.5,5){12cm}{!}
\method{1} % \method{0} does not work!
\multido{\iL=0+1,\iR=1+1}{\Pnodecount}{\pspolygon[fillstyle=solid,fillcolor=cyan!15](P\iL|0,0)(P\iL)(P\iR)(P\iR|0,0)}
\psplot[linecolor=cyan!75!blue]{0}{9}{\f[x]}
%\psxTick(N-P4.x){x_j} recommended
\end{psgraph}
\end{document}
的增量步长是多少\fnpnodes
?
答案1
\fnpnodes
没有在 Postscript 级别定义增量步骤,但计算是在 TeX 级别进行的。因此,(x1 - x0)/(plotpoints - 1)
如果您需要步骤,则必须自己进行计算:
\fnpnodes[plotpoints=8]{1}{8}{\f[x]}{P}
\psxTick(8 1 sub 7 div 4 mul 1 add){x_j}