Line - Line Intersect
2D Line - Line Intersect
IntersectLineLine(D3DXVECTOR3 Line1Start, D3DXVECTOR3 Line1End, D3DXVECTOR3 Line2Start, D3DXVECTOR3 Line2End)
{
float A1, B1, C1, A2, B2, C2, M1, M2, DetInv;
if ((Line1End.x - Line1Start.x) != 0)
M1 = (Line1End.y - Line1Start.y) / (Line1End.x - Line1Start.x);
else
FALSE;if ((Line2End.x - Line2Start.x) != 0)
M2 = (Line2End.y - Line2Start.y) / (Line2End.x - Line2Start.x);
else
FALSE;// Compute constants
A1 = M1;
A2 = M2;B1 = -1;
B2 = -1;C1 = (Line1Start.y - M1 * Line1Start.x);
C2 = (Line2Start.y - M2 * Line2Start.x);// Compute the inverse of the determinate
DetInv = 1 / (A1 * B2 - A2 * B1);// Use Kramers rule to compute Intersect Point
float IntersectX, IntersectY;
IntersectX = (B1 * C2 - B2 * C1) * DetInv;
IntersectY = (A2 * C1 - A1 * C2) * DetInv;return TRUE;
} // end Intersect_Lines