Vous êtes sur la page 1sur 4

/**@author

* @version
*/
public class Coordenada {
/** variables de instancias
*/
private double x;
private double y;

/**
* Constructor
*/
public Coordenada( ){
}
/**Constructor con dos parametros
* @param x un punto en eje X
* @param y un punto en eje Y
*/
public Coordenada( double x, double y){
this.x=x;
this.y=y;
}
/**Metodo accesor de Coordenada
* @return devuelve punto del eje X
*/
public double getX() {
return x;
}
/**Metodo modificador de Coordenada
* @param x un punto del eje X
*/
public void setX(double x) {
this.x = x;
}
/**Metodo accesor de Coordenada
* @return devuelve punto del eje Y
*/
public double getY() {
return y;
}
/**Metodo modificador de Coordenada
* @param x un punto del eje Y
*/
public void setY(double y) {
this.y = y;
}
/** Metodo que muestra la informacion de Coordenada.
* @return devuelve una coordenada en R2
*/
public String toString(){
String coo="["+x+","+y+"]";
return coo;
}

}
/**@author
* @version 04-10-17
*/

public class Rectangulo {


/**
* Variables de instancia de tipo Coodenada.
*/
private Coordenada A;
private Coordenada B;

/**Constructor sobrecargado de Rectangulo .


*/
public Rectangulo(){
}
/**Constructor Sobrecargado de Rectangulo
*
* @param a Objeto de tipo Coordenada.
* @param b Objeto de tipo Coordenada.
*/
public Rectangulo(Coordenada a, Coordenada b){
setA(a);
setB(b);
}
/** Metodo accesor de Rectangulo
* @return devuelve una variable de instancia de tipo Coordenada.
*/
public Coordenada getA() {
return A;
}
/**Metodo modificador de Recatangulo
* @param cooA Objeto de tipo Coordenada.
*/
public void setA(Coordenada A) {
this.A = A;
}
/** Metodo accesor de Rectangulo
* @return devuelve una variable de instancia de tipo Coordenada.
*/
public Coordenada getB() {
return B;
}/**Metodo modificador de Recatangulo
* @param cooB Objeto de tipo Coordenada.
*/
public void setB(Coordenada B) {
this.B = B;
}
/**Metodo que calcula el estado de 2 rectangulos:sobrepuestos, juntos
o disjuntos.
*
* @param r1
* @return
*/
public int estadoRectangulo( Rectangulo r1){

// Las dos coordenadas en X de este objeto como rectangulo A .


double xA1=A.getX();
double xA2=B.getX();
// Las dos coordenadas en Y de este objeto como rectangulo A .
double yA1=A.getY();
double yA2=B.getY();

// Las dos coordenadas en X del parametro de tipo Rectangulo


como rectangulo B .

double xB1=r1.A.getX();
double xB2=r1.B.getX();
// Las dos coordenadas en Y del parametro de tipo Rectangulo
como rectangulo B .
double yB1=r1.A.getY();
double yB2=r1.B.getY();

int opcion=0;
if((Math.max(yA1, yA2)>Math.min(yB1, yB2)&& Math.min(xA1,
xA2)<Math.max(xB1, xB2))&& (Math.max(yB1, yB2)>Math.min(yA1, yA2) &&
Math.min(xB1, xB2)<Math.max(xA1, xA2)))
opcion=1;
if(Math.min(yA1, yA2)==Math.max(yB1, yB2) || Math.max(yA1,
yA2)== Math.min(yB1, yB2) ||Math.max(xA1, xA2)==Math.min(xB1,
xB2)||Math.min(xA1, xA2)==Math.max(xB1, xB2))
opcion=2;

return opcion;
}
/** Metodo que muestra la informacion de Coordenada.
* @return devuelve las coordenada del rectangulo.
*/
public String toString() {
return "("+ A + " , " + B+")" ;
}

/**@author
* @version
*/

import java.util.*;
public class DemoRectangulo {

public static void main(String[] args) {


Scanner sc= new Scanner (System.in);
System.out.print("Ingrese coordenada x1 de A :");
double x1A=sc.nextDouble();
System.out.print("Ingrese coordenada y1 de A :");
double y1A=sc.nextDouble();

System.out.print("Ingrese coordenada x2 de A :");


double x2A=sc.nextDouble();
System.out.print("Ingrese coordenada y2 de A :");
double y2A=sc.nextDouble();

System.out.print("Ingrese coordenada x1 de B :");


double x1B=sc.nextDouble();
System.out.print("Ingrese coordenada y1 de B :");
double y1B=sc.nextDouble();

System.out.print("Ingrese coordenada x2 de B :");


double x2B=sc.nextDouble();
System.out.print("Ingrese coordenada y2 de B :");
double y2B=sc.nextDouble();

Coordenada a= new Coordenada(x1A,y1A);


Coordenada b= new Coordenada(x2A,y2A);

Coordenada c= new Coordenada(x1B,y1B);


Coordenada d= new Coordenada(x2B,y2B);

Rectangulo A=new Rectangulo( a,b);


Rectangulo B= new Rectangulo(c,d);

System.out.println("Rectangulo A: "+ A);


System.out.println("Rectangulo B: "+ B);

/*Sentencias que muestran el estado de los dos rectangulos.


*/
int opcion=A.estadoRectangulo(B);
System.out.print("Rectangulo A y B ");

if(opcion==1){
System.out.println("se sobreponen");
}else if(opcion==2)
System.out.println("se juntan");
else
System.out.println("son disjuntos");

Vous aimerez peut-être aussi