获取已知两点的直线上的点的函数

dan*_*y74 3 javascript jquery

鉴于两点:

const point1 = {x: 100, y: 0.95}
const point2 = {x: 75, y: 1.05}
Run Code Online (Sandbox Code Playgroud)

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

请假设存在线性关系。

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

有没有一个函数可以用来实现这个目的?

目前,我对数学解释感到困惑,并且理想地希望有一个 JavaScript 或 jQuery 函数,当给定任意 x 值时,它会返回 y 值。

Seb*_*ris 5

当然,一行的值是每增加一个单位就会增加gradient多少。例如,如果每上升 2 点,则上升 5 点,则该线的坡度为 2.5。yxyx

梯度可以从 2 个点计算出来,如下所示:

var gradient = (point2.y - point1.y) / (point2.x - point1.x);
Run Code Online (Sandbox Code Playgroud)

直线的截距是yy与轴相交的值。可以从 1 点开始计算,如下所示:

var intercept = point1.y - (gradient * point1.x);
Run Code Online (Sandbox Code Playgroud)

然后可以计算y任何值的值:x

var x = 10;
var y = gradient * x + intercept;
Run Code Online (Sandbox Code Playgroud)

结合这些东西的函数可能看起来像:

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;
}
Run Code Online (Sandbox Code Playgroud)