Filtro CPL Polarizado ventajas

Creando una Clase punto en Java - Fundamentos de Programación y POO1

En esta parte del blog crearemos la siguiente clase en Java.
Crear la clase Punto con dos atributos:
  1. Un entero que representa la abscisa de un punto en el plano. 
  2. Un entero que representa la ordenada de un punto en el plano.
Crear métodos para:
  1. Asignar valores a los atributos de la clase (Constructor).
  2. Mostrar los atributos y modificar los atributos (get y set)
  3. Recibir las coordenadas de un punto e indicar su posición en el plano cartesiano (en que cuadrante se ubica dicho punto).
  4. Calcular la distancia entre el punto definido por los atributos de la clase y otro punto cuyas coordenadas se reciben.
  5. Calcular las coordenadas del punto que divide al segmento de recta formada por el punto definido por las propiedades de la clase y otro punto cuyas coordenadas se reciben, en una razón dada (dicha razón debe ser leída por el programa).
Parte 1. Entendiendo el problema.


Antes de iniciar es necesario entender el problema, ya que involucra cuestiones de trigonometría.   
El ejemplo siguiente en cuestiones matemáticas se puede sustituir con los valores que se quieran, los pongo sólo para ejemplificar y se entienda. 
En el punto 3 nos pide identificar en que cuadrante se encuentra el punto indicado por el usuario.
Por tanto necesitamos saber los cuadrantes que tiene el plano cartesiano. 


Entonces si el valor de X > 0 y Y > 0 el punto se encuentra el Cuadrante I
Si X < 0 y Y > 0 entonces se encuentra en el Cuadrante II
Si X < 0 y Y < 0 entonces se encuentra en el Cuadrante III
Si X > 0 y Y < 0 entonces se encuentra en el Cuadrante IV  

En el punto 4 nos pide calcular la distancia entre dos puntos. Por lo tanto tenemos que emplear la formula trigonométrica para calcular dicha distancia.


 
Si queremos calcular la distancia entre el punto A y B emplearemos la formula que aparece en la imagen anterior. 

En el punto 5 también necesitamos la formula para calcular el punto medio de entre dos puntos.

Donde M indica la Distancia. Y siguiendo con el ejemplo anterior solo sustituimos:
x1 = 6
x2 = 2
y1 = 4
y2 = 1
Y de esta manera obtendríamos el punto medio.

Parte 2. Entendiendo los requerimientos del problema.
Los tipos de datos que manejaremos son de tipo entero (int), pero los resultados del punto medio puede ser float o double. 
Consideraremos que el punto A ya existe al momento de crear la clase Punto, por tanto crearemos un Constructor que inicie los valores de X2 = 2 y Y2 = 1. Y otro constructor que reciba los valores del usuario. En realidad no tendremos variables llamadas X1, X2, Y1 y Y2, manejaremos sólo X y Y, ya depende de que constructor usemos al momento de llamar la clase. Si creamos un objeto con el constructor vació, se entenderá que estamos trabajando con X2 y Y2, si le mandamos valores del usuario entonces se entenderá que estamos trabajando con X1 y Y2.

Parte 3. El código del programa
  

import java.util.Scanner;

public class Punto {

    private int x;//representa la absisa
    private int y;//representa la ordenada

    public Punto(int x, int y) {
        this.x = x;
        this.y = y;
    }

    public int getX() {
        return x;
    }

    public int getY() {
        return y;
    }

    public void setX(int x) {
        this.x = x;
    }

    public void setY(int y) {
        this.y = y;
    }
//Metodo que muestra en que cuadrante se encuentra el punto
    public void imprimir_cuadrante(int x, int y) {
        if (getX() > 0 && getY() > 0) {
            System.out.println("El punto esta en el primer cuadrante");
        } else if (getX() < 0 && getY() > 0) {
            System.out.println("El punto esta en el segundo cuadrante");
        } else if (getX() < 0 && getY() < 0) {
            System.out.println("El punto esta en el tercer cuadrante");
        } else {
            System.out.println("El punto esta en el cuarto cuadrante");
        }
    }
//Metodo que calcula la distancia 
    public void calcular_distancia(int x2, int y2) {
        float a = (x2 - getX()) * (x2 - getX());
        float b = (y2 - getY()) * (y2 - getY());
        double d = Math.sqrt(a + b);
        System.out.println("La distancia es de:" + d);
    }
//Metodo que calcula el punto medio 
    public void distancia_media(int x2, int y2) {
        float Xm = (getX() + x2) / 2;
        float Ym = (getY() + y2) / 2;
        System.out.println("El punto medio es:("+Xm+","+Ym+")");
    }

    public static void main(String[] args) {
        Scanner teclado = new Scanner(System.in);
        Punto objeto = new Punto(2,1);//valores predefinidos Punto A
        System.out.println("Teclee el valor para X:");
        int x = teclado.nextInt();
        System.out.println("Teclee el valor para y:");
        int y = teclado.nextInt();
        objeto.imprimir_cuadrante(2,1);//Imprime cuadrante predefinido punto A
        objeto.imprimir_cuadrante(x,y);//Imprime cuadrante definido por el usuario
        objeto.calcular_distancia(x, y);// valores por el usuario Punto B
        objeto.distancia_media(x, y);
    }

}
Ahora sólo le mandaremos los mismos valores que en la primera imagen.
Y vemos la salida:

Esto sería todo...
Si hubiera alguna duda pueden escribirme a mi correo:
ivanthebest10@gmail.com 

-_-

Fundamentos de programación
Programación orientada a objetos I
Clase Punto en Java

Comentarios