两线斜率相同,Y截距不同
在几何中,判断两条直线是否平行的一个常用方法是看它们的斜率是否相同。两条直线如果有相同的斜率,并且不是同一条直线,它们就是平行的。
假设我们有两条直线,它们分别经过 (x1, y1)
和 (x2, y2)
、(x3, y3)
和 (x4, y4)
两个点。
另外,两条直线如果不仅斜率相同,而且还在同一位置(即截距相同),那么它们实际上是重合的,而不是平行的。
为了确保两条直线只是平行而不重叠,我们还需要比较它们的 截距。截距 b 的公式来自直线方程 y = mx + b
,其中 m 是斜率,b 是截距。
截距 b 可以通过已知的点和斜率计算出来:b = y − mx
因此,判断两条线是否平行而不重叠的步骤如下:
function areLinesParallel(x1, y1, x2, y2, x3, y3, x4, y4) {
// 计算斜率时避免除以零的情况
const slope1EqualSlope2 = (y2 - y1) * (x4 - x3) === (y4 - y3) * (x2 - x1);
if (!slope1EqualSlope2) {
// 斜率不相等,直接返回 false,表示不平行
return false;
}
// 如果斜率相等,继续判断截距是否相等
// 计算截距
const intercept1 = y1 - ((y2 - y1) / (x2 - x1)) * x1;
const intercept2 = y3 - ((y4 - y3) / (x4 - x3)) * x3;
// 截距相同表示重叠,否则平行
return intercept1 !== intercept2;
}
// 示例:判断 (1, 2)-(3, 4) 和 (2, 3)-(4, 5) 是否平行但不重叠
console.log(areLinesParallel(1, 2, 3, 4, 2, 3, 4, 5)); // 输出 true
console.log(areLinesParallel(1, 2, 3, 4, 1, 2, 3, 4)); // 输出 false
点到圆心距离小于圆半径