Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,47 @@
|
|||
public class Intersection {
|
||||
private static class Point {
|
||||
double x, y;
|
||||
|
||||
Point(double x, double y) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format("{%f, %f}", x, y);
|
||||
}
|
||||
}
|
||||
|
||||
private static class Line {
|
||||
Point s, e;
|
||||
|
||||
Line(Point s, Point e) {
|
||||
this.s = s;
|
||||
this.e = e;
|
||||
}
|
||||
}
|
||||
|
||||
private static Point findIntersection(Line l1, Line l2) {
|
||||
double a1 = l1.e.y - l1.s.y;
|
||||
double b1 = l1.s.x - l1.e.x;
|
||||
double c1 = a1 * l1.s.x + b1 * l1.s.y;
|
||||
|
||||
double a2 = l2.e.y - l2.s.y;
|
||||
double b2 = l2.s.x - l2.e.x;
|
||||
double c2 = a2 * l2.s.x + b2 * l2.s.y;
|
||||
|
||||
double delta = a1 * b2 - a2 * b1;
|
||||
return new Point((b2 * c1 - b1 * c2) / delta, (a1 * c2 - a2 * c1) / delta);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
Line l1 = new Line(new Point(4, 0), new Point(6, 10));
|
||||
Line l2 = new Line(new Point(0, 3), new Point(10, 7));
|
||||
System.out.println(findIntersection(l1, l2));
|
||||
|
||||
l1 = new Line(new Point(0, 0), new Point(1, 1));
|
||||
l2 = new Line(new Point(1, 2), new Point(4, 5));
|
||||
System.out.println(findIntersection(l1, l2));
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue