/* Lab : Lab7 Day : Tuesday [ 23 Sept 08 ] Problem Number: 01 Problem Title : implementing a Axis parallel rect class Theory : Please go through the code */ // This class had been discussed in class on 19sept (lecture 21) class point { double x; double y; public void setX(double x_value) { x = x_value; } public void setY(double y_value) { y = y_value; } public double distance_from_origin() { return Math.sqrt(x*x+y*y); } public void show_point() { System.out.print(" (" + x + "," + y + ")" ); } }; // Implimentation of class Axis_parallel_rect class axis_parallel_rect { point lower_left_corner; point upper_right_corner; // constructor with two point as parameter public axis_parallel_rect(point L, point U) { lower_left_corner = new point(); upper_right_corner = new point(); lower_left_corner.x = L.x ; lower_left_corner.y = L.y ; upper_right_corner.x = U.x ; upper_right_corner.y = U.y ; } // constructor with one point and two distance parameter public axis_parallel_rect(point L, double x_length, double y_length) { lower_left_corner = new point(); upper_right_corner = new point(); lower_left_corner.x = L.x ; lower_left_corner.y = L.y ; upper_right_corner.x = L.x + x_length; upper_right_corner.y = L.y + y_length; } // constructor without parameter public axis_parallel_rect() { lower_left_corner = new point(); upper_right_corner = new point(); lower_left_corner.x = 0; lower_left_corner.y = 0; upper_right_corner.x = 0; upper_right_corner.y = 0; } public double area() { return (upper_right_corner.x - lower_left_corner.x) * (upper_right_corner.y - lower_left_corner.y); } public double perimeter() { return 2*((upper_right_corner.x - lower_left_corner.x) + (upper_right_corner.y - lower_left_corner.y)); } public point center() { point centre = new point(); centre.x = (upper_right_corner.x + lower_left_corner.x) / 2 ; centre.y = (upper_right_corner.y + lower_left_corner.y) / 2 ; return centre; } public boolean is_inside(point P) { if ( (P.x >= this.lower_left_corner.x) && (P.x <= this.upper_right_corner.x) && (P.y >= this.lower_left_corner.y) && (P.y <= this.upper_right_corner.y) ) { return true; } return false; } }; class sol_lab7_prob01{ public static void main(String args[]) { point point1 = new point(); point point2 = new point(); point1.setX(10); point1.setY(10); System.out.print("\n\npoint1 = "); point1.show_point(); System.out.print("\nDistance of point1 from Origine = " + point1.distance_from_origin() ); point2.setX(15); point2.setY(15); System.out.print("\n\npoint1 = "); point2.show_point(); System.out.print("\nDistance of point1 from Origine = " + point2.distance_from_origin() ); axis_parallel_rect rect1 = new axis_parallel_rect(point1,point2); axis_parallel_rect rect2 = new axis_parallel_rect(point1,20,20); axis_parallel_rect rect3 = new axis_parallel_rect(); System.out.print("\n\nrect1 = " ); rect1.lower_left_corner.show_point(); rect1.upper_right_corner.show_point(); System.out.print("\nArea=" + rect1.area() +" Perimeter="+rect1.perimeter() + " Centre="); rect1.center().show_point(); System.out.print("\n\nrect2=" ); rect2.lower_left_corner.show_point(); rect2.upper_right_corner.show_point(); System.out.print("\nArea=" + rect2.area() +" Perimeter="+rect2.perimeter() + " Centre="); rect2.center().show_point(); System.out.print("\n\nrect3 = " ); rect3.lower_left_corner.show_point(); rect3.upper_right_corner.show_point(); System.out.print("\nArea=" + rect3.area() +" Perimeter="+rect3.perimeter() + " Centre="); rect3.center().show_point(); System.out.print("\n\n rect3.is_inside(point1) = " + rect3.is_inside(point1) ); System.out.println("\n rect2.is_inside(point1) = " + rect2.is_inside(point1) ); } }