intersection static method
Implementation
static Coordinate? intersection(
Coordinate p1, Coordinate p2, Coordinate q1, Coordinate q2) {
DD px = DD.valueOf(p1.y).selfSubtract2(p2.y);
DD py = DD.valueOf(p2.x).selfSubtract2(p1.x);
DD pw = DD
.valueOf(p1.x)
.selfMultiply2(p2.y)
.selfSubtract(DD.valueOf(p2.x).selfMultiply2(p1.y));
DD qx = DD.valueOf(q1.y).selfSubtract2(q2.y);
DD qy = DD.valueOf(q2.x).selfSubtract2(q1.x);
DD qw = DD
.valueOf(q1.x)
.selfMultiply2(q2.y)
.selfSubtract(DD.valueOf(q2.x).selfMultiply2(q1.y));
DD x = py.multiply(qw).selfSubtract(qy.multiply(pw));
DD y = qx.multiply(pw).selfSubtract(px.multiply(qw));
DD w = px.multiply(qy).selfSubtract(qx.multiply(py));
double xInt = x.selfDivide(w).doubleValue();
double yInt = y.selfDivide(w).doubleValue();
if (xInt.isNaN || xInt.isInfinite || yInt.isNaN || yInt.isInfinite) {
return null;
}
return Coordinate(xInt, yInt);
}