获得两点已知的在线点的功能

时间:2017-08-02 16:38:31

标签: javascript jquery

有两点:

const point1 = {x: 100, y: 0.95}
const point2 = {x: 75, y: 1.05}

当x等于某个任意值时,我需要知道y的值。

请假设存在线性关系。

例如,当x为80时,y是多少?当x是70时,y是什么?

我可以使用这个功能吗?

目前我对数学解释感到困惑,理想情况下喜欢JavaScript或jQuery函数,当给定任意x值时,返回y值。

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

使用给定的两个点计算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));




答案 2 :(得分:2)

当然,gradient行的yx每单位y增加的数量。例如。如果x每增加2 var gradient = (point2.y - point1.y) / (point2.x - point1.x); 上升5,那么该行的梯度为2.5。

渐变可以从2点计算,如下:

y

一条直线的截距是它与y轴交叉的var intercept = point1.y - (gradient * point1.x); 值。它可以从1点计算如下:

y

然后可以计算任何x值的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}}