Problema con agregación!
He creado dos clases, la clase Punto.java y Linea.java.
Los atributos de la clase Linea son dos objetos de la clase Punto. Ahora tengo que crear una clase rectángulo cuyos únicos atributos deben ser cuatro lineas de la clase Linea. MI pregunta es : ¿Cómo puedo hacer UN CONSTRUCTOR PARA CREAR UN RECTÁNGULO QUE PASE POR LOS PUNTOS DADOS?
MIs clases son las sig:
public class Punto {
private int x; // Coordenada x
private int y; // Coordenada y
/**
* Constructor de un punto, crea el punto (0,0)
*/
public Punto () {
x = y = 0;
}
/**
* Constructor de un punto a partir de dos números enteros que
* representan las coordenadas del nuevo punto.
* @param x - coordenada x del nuevo punto.
* @param y - coordenada y del nuevo punto.
*/
public Punto (int x, int y) {
this.x = x;
this.y = y;
}
/**
* Constructor de un punto a partir de otro punto.
* @param p - punto a partir del cual se creara el nuevo.
*/
public Punto (Punto p) {
x = p.x;
y = p.y;
}
/**
* Asigna valor a la coordenada x del punto.
* @param nuevaX - nuevo valor para la coordenada x.
*/
public void asignarX(int nuevaX) {
x = nuevaX;
}
/**
* Asigna valor a la coordenada y del punto.
* @param nuevaY - nuevo valor para la coordenada y.
*/
public void asignarY(int nuevaY) {
y = nuevaY;
}
/**
* Regresa la coordenada x del punto.
* @return int - la coordenada x del punto.
*/
public int obtenerX () {
return x;
}
/**
* Regresa la coordenada del punto.
* @return int - la coordenada y del punto.
*/
public int obtenerY () {
return y;
}
PARA LA CLASE LINEA TENGO:
public class Linea{
private Punto p1;
private Punto p2;
/**
*Constructor por omision de la linea que pasa por los puntos (0,0) y (1,1)
*/
Linea(){
p1 = new Punto(0,0);
p2 = new Punto(1,1);
}
/**Constructor de una linea a partir de dos puntos
*@param p1Ini-- punto de origen
*@param p2Ini-- segundo punto
*/
Linea(Punto p1Ini, Punto p2Ini){
p1 = p1Ini;
p2 = p2Ini;
}
/**
*Constructor copia
*@param Linea l -- linea que se toma para crear otra
*/
Linea(Linea l){
p1 = l.p1;
p2 = l.p2;
}
/**
*Metodo para calcular la pendiente de una recta
*@return double -- la pendiente
*/
public double pendiente(){
double divisor = p2.obtenerX() - p1.obtenerX();
//Recta paparalela al eje y
return (divisor != 0)? (p2.obtenerY() - p1.obtenerY())/divisor :Double.POSITIVE_INFINITY;
}
/**
*Calcula la ordenada al origen de la recta dada
*@return la ordenada al origen
*/
public double ordenada(){ //Verificar si es P o D
return p1.obtenerX() == p2.obtenerX()? Double.POSITIVE_INFINITY : p1.obtenerY() - pendiente()*p1.obtenerX();
}
Para mi clase Rectangulo.java
se intentado hacer el constructor pero no me compila.
public class Rectangulo {
//Atributos
private Linea l1;
private Linea l2; //Objetos de la clase Linea.java
private Linea l3;
private Linea l4;
AQUI NO SE COMO HACER MI CONSTRUCTOR:
/**
*Constructor que define el rectángulo que se forma por las lineas que pasan por los
* los puntos l1(0,0) y (20,0), l2 (0,15)
* (20,15), l3 (0,0) y (0,15), l4 (20,0) y (20,15)
*/
Rectangulo(){
}
Los atributos de la clase Linea son dos objetos de la clase Punto. Ahora tengo que crear una clase rectángulo cuyos únicos atributos deben ser cuatro lineas de la clase Linea. MI pregunta es : ¿Cómo puedo hacer UN CONSTRUCTOR PARA CREAR UN RECTÁNGULO QUE PASE POR LOS PUNTOS DADOS?
MIs clases son las sig:
public class Punto {
private int x; // Coordenada x
private int y; // Coordenada y
/**
* Constructor de un punto, crea el punto (0,0)
*/
public Punto () {
x = y = 0;
}
/**
* Constructor de un punto a partir de dos números enteros que
* representan las coordenadas del nuevo punto.
* @param x - coordenada x del nuevo punto.
* @param y - coordenada y del nuevo punto.
*/
public Punto (int x, int y) {
this.x = x;
this.y = y;
}
/**
* Constructor de un punto a partir de otro punto.
* @param p - punto a partir del cual se creara el nuevo.
*/
public Punto (Punto p) {
x = p.x;
y = p.y;
}
/**
* Asigna valor a la coordenada x del punto.
* @param nuevaX - nuevo valor para la coordenada x.
*/
public void asignarX(int nuevaX) {
x = nuevaX;
}
/**
* Asigna valor a la coordenada y del punto.
* @param nuevaY - nuevo valor para la coordenada y.
*/
public void asignarY(int nuevaY) {
y = nuevaY;
}
/**
* Regresa la coordenada x del punto.
* @return int - la coordenada x del punto.
*/
public int obtenerX () {
return x;
}
/**
* Regresa la coordenada del punto.
* @return int - la coordenada y del punto.
*/
public int obtenerY () {
return y;
}
PARA LA CLASE LINEA TENGO:
public class Linea{
private Punto p1;
private Punto p2;
/**
*Constructor por omision de la linea que pasa por los puntos (0,0) y (1,1)
*/
Linea(){
p1 = new Punto(0,0);
p2 = new Punto(1,1);
}
/**Constructor de una linea a partir de dos puntos
*@param p1Ini-- punto de origen
*@param p2Ini-- segundo punto
*/
Linea(Punto p1Ini, Punto p2Ini){
p1 = p1Ini;
p2 = p2Ini;
}
/**
*Constructor copia
*@param Linea l -- linea que se toma para crear otra
*/
Linea(Linea l){
p1 = l.p1;
p2 = l.p2;
}
/**
*Metodo para calcular la pendiente de una recta
*@return double -- la pendiente
*/
public double pendiente(){
double divisor = p2.obtenerX() - p1.obtenerX();
//Recta paparalela al eje y
return (divisor != 0)? (p2.obtenerY() - p1.obtenerY())/divisor :Double.POSITIVE_INFINITY;
}
/**
*Calcula la ordenada al origen de la recta dada
*@return la ordenada al origen
*/
public double ordenada(){ //Verificar si es P o D
return p1.obtenerX() == p2.obtenerX()? Double.POSITIVE_INFINITY : p1.obtenerY() - pendiente()*p1.obtenerX();
}
Para mi clase Rectangulo.java
se intentado hacer el constructor pero no me compila.
public class Rectangulo {
//Atributos
private Linea l1;
private Linea l2; //Objetos de la clase Linea.java
private Linea l3;
private Linea l4;
AQUI NO SE COMO HACER MI CONSTRUCTOR:
/**
*Constructor que define el rectángulo que se forma por las lineas que pasan por los
* los puntos l1(0,0) y (20,0), l2 (0,15)
* (20,15), l3 (0,0) y (0,15), l4 (20,0) y (20,15)
*/
Rectangulo(){
}
2 respuestas
Respuesta
1
Respuesta de alejosoft
1