我希望绘制函数,f(x,y)=cos(y)sin(x)/x
即使x=0
(函数在这些点处连续)。我可以在 Asymptote 中创建一个函数,用 绘制此曲面,triple f(pair t) {return (t.x,t.y,cos(t.y)*sin(t.x)/t.x);}
只要绘制的点从未有 ,它就可以正常工作t.x=0
。但是,我确实想绘制这样的点,我试图通过if
在函数定义中使用语句来解决这个问题:当 时t.x=0
,我希望函数只返回cos(y)
。
我试过:
triple f(pair t) {return (t.x,t.y, if(t.x==0) {cos(t.y);} else {cos(t.y)*sin(t.x)/t.x;});}
以及 的存在和 的位置的各种排列;;
我还尝试了{}
()
triple f(pair t) {return if(t.x==0) {(t.x,t.y,cos(t.y);}
else {(t.x,t.y,cos(t.y)*sin(t.x)/t.x);};}
还有各种放置;
等等。我收到的只是一条模糊的syntax error
信息。
如何组合函数和if
语句?
答案1
triple f(pair t)
{
if (t.x == 0) { return (t.x, t.y, cos(t.y)); }
return (t.x, t.y, cos(t.y)*sin(t.x)/t.x);
}
或者
triple f(pair t)
{
return (t.x, t.y, t.x==0 ? cos(t.y) : cos(t.y)*sin(t.x)/t.x);
}