Add line clipping algorithms (#5580)

This commit is contained in:
ShikariSohan
2024-10-07 18:21:39 +06:00
committed by GitHub
parent 357fc6a271
commit c45b2b8132
6 changed files with 458 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
package com.thealgorithms.lineclipping.utils;
import java.util.Objects;
/**
* @author moksedursohan
* @since 10/4/24
*/
public class Line {
public Point start;
public Point end;
public Line() {
}
public Line(Point start, Point end) {
this.start = start;
this.end = end;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof Line line)) {
return false;
}
return Objects.equals(start, line.start) && Objects.equals(end, line.end);
}
@Override
public int hashCode() {
return Objects.hash(start, end);
}
@Override
public String toString() {
return "Line from " + start + " to " + end;
}
}

View File

@@ -0,0 +1,43 @@
package com.thealgorithms.lineclipping.utils;
import java.util.Objects;
/**
* @author moksedursohan
* @since 10/4/24
*/
public class Point {
public double x;
public double y;
public Point() {
}
public Point(double x, double y) {
this.x = x;
this.y = y;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof Point point)) {
return false;
}
return Double.compare(x, point.x) == 0 && Double.compare(y, point.y) == 0;
}
@Override
public int hashCode() {
return Objects.hash(x, y);
}
@Override
public String toString() {
return "(" + x + ", " + y + ")";
}
}