javascript - 在已知两点的线上获取点的函数

标签 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 值。

最佳答案

当然,直线的梯度y每增加一个单位x增加的量。例如。如果 y 每增加 2 x 就增加 5,则称该线的梯度为 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;
}

关于javascript - 在已知两点的线上获取点的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45466457/

相关文章:

javascript - 如何在包含很少单词的子字符串后插入字符串

jquery - 如何停止点击事件中的功能

javascript - onblur ajax不调用回调函数

javascript - JS : I can't get the inner HTML of elements with a specific class name

javascript - 自动填充的输入在 Shiny 中未读取

javascript - 有没有办法限制 ng-repeat 中重复项目的数量?

javascript - ExtJs扩展组件问题

javascript - 有没有办法防止自阴影内的面接收光?

javascript - 控制 React 组件渲染的顺序

jquery - 如何插入jQuery代码? Uncaught ReferenceError : $ is not defined in view razor code