搜索

首页  >  问答  >  正文

javascript - js实现上抛物线的算法

欧阳克欧阳克2768 天前1013

全部回复(4)我来回复

  • 習慣沉默

    習慣沉默2017-06-14 10:54:30

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

    指数函数

    比如二次函数

    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); 

    大概这样

    三角函数

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

    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); 

    大概这样。。。。

    抛物线

    数学形式是

    x^2 = 2p * y

    也就是

    y = x ^ 2 / 2p

    跟指数函数形式一致

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

    幂函数

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

    大概长这样

    四分之一圆

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

    大概长这样

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

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


    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();
        }
    }

    回复
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-06-14 10:54:30

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

    回复
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-06-14 10:54:30

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

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-06-14 10:54:30

    函数 fn(x) {

    雷雷

    }
    console.log(fn(9));

    回复
    0
  • 取消回复