Lab File
Lab File
Line class
package Geometry.Shapes2D;
public class Line {
// Data members
private Point start; // Start point of line
private Point end; // End point of line
// Create a line from two points
public Line(final Point start, final Point end) {
this.start = new Point(start);
this.end = new Point(end);
}
// Create a line from two coordinate pairs
public Line(double xStart, double yStart, double xEnd, double yEnd) {
start = new Point(xStart, yStart); // Create the start point
end = new Point(xEnd, yEnd); // Create the end point
}
public Line(final Line aLine) {
start = aLine.start;
end = aLine.end;
}
// Calculate the length of a line
public double length() {
return start.distance(end); // Use the method from the
Point class
}
// Return a point as the intersection of two lines -- called from a Line object
public Point intersects(final Line line2) {
double num =(end.getY() - start.getY())*(start.getX() - line2.start.getX()) -
(end.getX() - start.getX())*(start.getY() - line2.start.getY());
double denom = (end.getY() - start.getY())*(line2.end.getX() - line2.start.getX())
-
(end.getX() - start.getX())*(line2.end.getY() - line2.start.getY());
double x = (line2.start.getX() + (line2.end.getX() -
line2.start.getX())*num/denom);
double y = (line2.start.getY() + (line2.end.getY() -
line2.start.getY())*num/denom);
Point p = new Point(x,y);
return p;
}
// Convert a line to a string
public String toString() {
return "(" + start+ "):(" + end + ")"; // As "(start):(end)"
} // that is, "(x1, y1):(x2, y2)"
public Point getStart(){
return start;
}
public Point getEnd(){
return end;
}
}
Point class
package Geometry.Shapes2D;
public class Line {
// Data members
private Point start; // Start point of line
private Point end; // End point of line
// Create a line from two points
public Line(final Point start, final Point end) {
this.start = new Point(start);
this.end = new Point(end);
}
// Create a line from two coordinate pairs
public Line(double xStart, double yStart, double xEnd, double yEnd) {
start = new Point(xStart, yStart); // Create the start point
end = new Point(xEnd, yEnd); // Create the end point
}
public Line(final Line aLine) {
start = aLine.start;
end = aLine.end;
}
// Calculate the length of a line
public double length() {
return start.distance(end); // Use the method from the
Point class
}
// Return a point as the intersection of two lines -- called from a Line object
public Point intersects(final Line line2) {
double num =(end.getY() - start.getY())*(start.getX() - line2.start.getX()) -
(end.getX() - start.getX())*(start.getY() - line2.start.getY());