js实现上抛物线的算法

发布于 2022-09-05 01:32:03 字数 227 浏览 13 评论 0

clipboard.png

  • 不是要画这条线啊, 是一个函数, 参数是一个x, 返回值随x的值变大呈现上图的趋势, 求这样一个函数, 谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

一袭水袖舞倾城 2022-09-12 01:32:03

上抛物线 ? 看图似乎是四分之一圆。。

指数函数

比如二次函数

y = ax^2 + bx + c

// 柯里化 
var y = a => b => c => x =>  a * x ** 2 + b * x + c; 

// y = x^2 
var ept = y(1)(0)(0); 

大概这样

clipboard.png

三角函数

看了看 这个比较符合。。。

y = -cos wx + o

// 柯里化 
var y = A => W => O => OFFSET =>  x => A * Math.cos(W * x + O) + OFFSET; 

// cosineLine(x) = -1000cos(w)
var cosineLine = y(-1000)(1)(0)(500); 

大概这样。。。。

clipboard.png

抛物线

数学形式是

x^2 = 2p * y

也就是

y = x ^ 2 / 2p

跟指数函数形式一致

// 柯里化 
var y = p => x => x * x / 2p; 

clipboard.png

幂函数

// y = a^x - 1 
// 柯里化 
var y = a => x => a ** x - 1;

大概长这样
clipboard.png

四分之一圆

利用... canvas 的 arc 画弧就可以了

大概长这样

g.arc(0,0,800, 0, 2*Math.PI);
g.stroke(); 

不过 x 达到半径之外就没有实数解了。。

clipboard.png


canvas部分

大概这样。。 不过容易栈溢出。。

function render(g, line, x = 0){
    var y = line(x / 50); 

    if (y <= 800) {
        g.lineTo(x, 800 - y); 
        render(g, line, x + 0.5); 
    } else {
        g.stroke();
    }
}
野稚 2022-09-12 01:32:03

这难道不是一道数学题,f(x)=ax*x + bx + c

我纯我任性 2022-09-12 01:32:03

function(x) { return x**2; }

枕头说它不想醒 2022-09-12 01:32:03

function fn(x) {

  return x*x;

}
console.log(fn(9));

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文