这可能是一个有点简单的问题,但我似乎无法让它发挥作用。
我想找到给定两个点的 x 截距。
假设我有以下两点: (5,3) 和 (3,4) 我想找到 x 截距。 目前这就是我所拥有的。它正确地找到了 y 截距。在本例中为 5.5。
var A = [5, 3];
var B = [3, 4];
function slope(a, b) {
if (a[0] == b[0]) {
return null;
}
return (b[1] - a[1]) / (b[0] - a[0]);
}
function intercept(point, slope) {
if (slope === null) {
// vertical line
return point[0];
}
return point[1] - slope * point[0];
}
var m = slope(A, B);
console.log(m);
var b = intercept(A, m);
console.log('intercept: ' + b);
最佳答案
给定一条直线 y = mx + n
,它在 y=0
时截取 x 轴。
0 = xm + n --> x = -n/m
所以 x 轴截距将为 -n/m
。
给定两个点 (x_1,y_1), (x_2,y_2)
,您可以这样找到斜率和 y 截距:
m = (y_2-y_1)/(x_2-x_1)
n = -x_1*(y_2-y_1)/(x_2-x_1) + y_1
那么,x轴截距就是
x_1 - y_1*(x_2-x_1)/(y_2-y_1)
在 JavaScript 中,
function x_intercept(a, b) {
return a[0] - a[1]*(b[0]-a[0])/(b[1]-a[1]);
}
x_intercept([5, 3], [3, 4]); // 11
关于javascript - 给定两点得到 x 截距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36183556/