我要使用 PSTricks 绘制一个 3D 函数\parametricplotThreeD
。在控制边界值和公式方面,两个参数中的 Z 坐标非常尴尬,因此我决定将其分解为可承受的函数。
对于数学函数(作为示例),
f(t, u) = (1-u)cos(t) + uSin(t/3),
我使用了一些 tex.stackexchange 问题并将我的函数定义为,例如,
\documentclass{minimal}
\usepackage{pstricks}
\usepackage{pst-solides3d}%Drawing
\usepackage{pst-3dplot}%
\usepackage[nomessages]{fp}% http://ctan.org/pkg/fp
\begin{document}
\newcommand{\fMathFunction}[2]
{\FPeval\result{(1-#2)(cos(#1)) + (#2)(sin((#1)/3))}\result}.
\parametricplotThreeD[algebraic, xPlotpoints=20,
linecolor=blue,%
linewidth=0.5pt,plotstyle=curve](0, 1)(0, 1){%
t|\fMathFunction{t}{u}|2+sqrt(\fMathFunction{t}{u})}%
\end{pspicture}
\end{document}
我收到很多错误。
我想知道是否可以在两个变量中定义一个函数以及如何使用它。如果我搬家了,那么我还想定义另一个函数,比如
g(t, u) = 2 + sqrt (f(g, u)),
并用它代替 Z。
编辑1:我做这道题的目的不是画图。我想知道是否有可能在两个变量中定义一个自定义数学函数。我们已经知道如何定义一个自定义的f(x)
。我喜欢定义一个自定义的f(x,y)
。
答案1
我不明白g(t,u) = 2 + sqrt(f(t,u))
应该如何处理0..1
。f(t,u)
可以为负数。但是,不需要参数函数:
\documentclass{article}
\usepackage{pst-solides3d}
\begin{document}
\psset{viewpoint=30 -50 30 rtp2xyz,Decran=50,lightsrc=viewpoint}
\begin{pspicture}(-1,-1)(3,7.5)
\psSolid[object=grille,base=0 3 0 3,action=draw]
\psSurface[ngrid=.1 .1,incolor=yellow,axesboxed,Zmin=-2,Zmax=4,
linewidth=0.5\pslinewidth,
algebraic,hue=0 1](0,0)(3,3){(1-y)*cos(x)+y*sin(x/3)}
\end{pspicture}
\end{document}
或者使用定义的函数:
\def\myFunction(#1,#2){(1-#2)*cos(#1)+#2*sin(#1/3)}
\psset{viewpoint=30 -50 30 rtp2xyz,Decran=50,lightsrc=viewpoint}
\begin{pspicture}(-1,-1)(3,7.5)
\psSolid[object=grille,base=0 3 0 3,action=draw]
\psSurface[ngrid=.1 .1,incolor=yellow,axesboxed,Zmin=-2,Zmax=4,
linewidth=0.5\pslinewidth,
algebraic,hue=0 1](0,0)(3,3){\myFunction(x,y)}
\end{pspicture}