给定输入:
double x1,y1,x2,y2;
我该如何找到一般形式的方程(双系数a、b、c,其中ax + by + c = 0)?
注意:我希望能够通过计算来完成这项任务。因此,与斜率截距式等价的内容可能是:
double dx, dy;
double m, b;
dx = x2 - x1;
dy = y2 - y1;
m = dy/dx;
b = y1;
很显然,这很简单,但我一直没有找到通用方程形式的解决方案(因为它可以处理垂直线,所以更有用)。我已经查阅了我的线性代数书和两本计算几何书籍(都过于高级而无法解释这个问题)。
a、b、c
参数的代码不会受到意外的影响。 - rwong(a, b)
的值进行归一化以避免数值问题。使用 L2 范数是相当典型的,因此a^2 + b^2=1
。 - marcos.nietoc
简化为x1 * y2 - x2 * y1
(分配并收集)。 - Jeffrey Scofield