# geometry – How can I find the general form equation of a line from two points?

## geometry – How can I find the general form equation of a line from two points?

If you start from the equation `y-y1 = (y2-y1)/(x2-x1) * (x-x1)` (which is the equation of the line defined by two points), through some manipulation you can get `(y1-y2) * x + (x2-x1) * y + (x1-x2)*y1 + (y2-y1)*x1 = 0`, and you can recognize that:

• `a = y1-y2`,
• `b = x2-x1`,
• `c = (x1-x2)*y1 + (y2-y1)*x1`.

Get the tangent by subtracting the two points `(x2-x1, y2-y1)`. Normalize it and rotate by 90 degrees to get the normal vector `(a,b)`. Take the dot product with one of the points to get the constant, `c`.

#### geometry – How can I find the general form equation of a line from two points?

If you start from the equation of defining line from 2 points

``````(x - x1)/(x2 - x1) = (y - y1)/(y2 - y1)
``````

you can end up with the next equation

``````x(y2 - y1) - y(x2 - x1) - x1*y2 + y1*x2 = 0
``````

so the coefficients will be:

• a = y2 – y1
• b = -(x2 – x1) = x1 – x2
• c = y1*x2 – x1*y2

My implementation of the algorithm in C

``````inline v3 LineEquationFrom2Points(v2 P1, v2 P2) {
v3 Result;

Result.A = P2.y - P1.y;
Result.B = -(P2.x - P1.x);
Result.C = P1.y * P2.x - P1.x * P2.y;

return(Result);
}
``````