javascript - js實作上拋物線的演算法
欧阳克
欧阳克 2017-06-14 10:52:30
0
4
914

  • #不是要畫這條線啊, 是一個函數, 參數是一個x, 傳回值隨x的值變大呈現上圖的趨勢, 求這樣一個函數, 謝謝!

欧阳克
欧阳克

温故而知新,可以为师矣。 博客:www.ouyangke.com

全部回覆 (4)
習慣沉默

上拋物線 ? 看圖似乎是四分之一圓。 。

指數函數

例如二次函數

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(); } }
    曾经蜡笔没有小新

    這不是一道數學題,f(x)=ax*x + bx + c

      曾经蜡笔没有小新

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

        伊谢尔伦

        函數 fn(x) {

        雷雷

        }
        console.log(fn(9));

          最新下載
          更多>
          網站特效
          網站源碼
          網站素材
          前端模板
          關於我們 免責聲明 Sitemap
          PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!