考慮兩點點:函數來獲取在線在兩個點已知
const point1 = {x: 100, y: 0.95}
const point2 = {x: 75, y: 1.05}
我需要知道y的值當x等於一些任意值。
請假設存在線性關係。
例如,x是80時是什麼? x是70時是什麼?
是否有我可以使用的功能?
目前我一直對數學解釋感到困惑,理想情況下會喜歡JavaScript或jQuery函數,當給定任意x值時返回y值。
考慮兩點點:函數來獲取在線在兩個點已知
const point1 = {x: 100, y: 0.95}
const point2 = {x: 75, y: 1.05}
我需要知道y的值當x等於一些任意值。
請假設存在線性關係。
例如,x是80時是什麼? x是70時是什麼?
是否有我可以使用的功能?
目前我一直對數學解釋感到困惑,理想情況下會喜歡JavaScript或jQuery函數,當給定任意x值時返回y值。
當然,一行的gradient
是量y
增加每單元x
增加。例如。如果y
上升5,每2個x
上升,則該線被稱爲具有2.5的梯度。
梯度可以從2點來計算,如下所示:
var gradient = (point2.y - point1.y)/(point2.x - point1.x);
的線的截距是y
值它穿過y
軸線。它可以從像這樣1個點來計算:然後
var intercept = point1.y - (gradient * point1.x);
可以計算出任何x
值y
值:
var x = 10;
var y = gradient * x + intercept;
結合了這些東西的函數可能看起來像:
function yFromX(point1, point2, x) {
var gradient = (point2.y - point1.y)/(point2.x - point1.x);
var intercept = point1.y - (gradient * point1.x);
return gradient * x + intercept;
}
感謝您的好答案+1,但是您的代碼中存在拼寫錯誤...您有... point1.y = x ...應該是... point1.x ...非常明確的代碼,很好的使用變量名...許多thx ... PS如果你解決這個問題,我會接受這個答案 – danday74
謝謝你指出,糾正 –
const point1 = {x: 100, y: 0.95}
const point2 = {x: 75, y: 1.05}
function getY (x) {
var gradient = (point1.y - point2.y)/(point1.x - point2.x);
return point1.y + gradient * (x - point1.x);
}
alert(getY(90));
使用給定的兩個點計算m(梯度)和c(偏移),然後使用這些點計算任意x的y。
const point1 = {x: 100, y: 0.95}
const point2 = {x: 75, y: 1.05}
var m = (point1.y - point2.y)/(point1.x - point2.x); // gradient formula
var c = point1.y - m*point1.x; // offset formula
function findY(x){
return m*x + c;
}
console.log(findY(80));
console.log(findY(70));
類似於: - {75,1.05},{50,1.15},{25,1.25} {0,1.35} {90,0.99} –
所有答案都是正確的,所以對每個人都+1。以及問題到 –