Asymptote 函数内部的“If”语句

Asymptote 函数内部的“If”语句

我希望绘制函数,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);
}

相关内容