segunda-feira, 9 de fevereiro de 2009

Distância entre 2 pontos em Java

Aqui está um código para calcular a distância(euclidiana) entre 2 pontos em uma reta escrito em Java. Foi usado a seguinte fórmula:



O programa espera receber 4 argumentos na linha de comando separados por espaço ( 5 3 -2 0 ) que equivalem respectivamente a: x1 y1 x2 y2

Então seguindo o exemplo:

x1 = 5
y1 = 3
x2 = -2
y2 = 0

Passando esses argumentos na linha de comando(no windows), teria que chamar assim:

c:\diretorio\subdiretorio>java DistanciaEntre2Pontos 5 3 -2 0


Então o programa retorna a distância para esses 2 pontos.

E dando uma visão geral, foram usados os seguintes métodos:



Math.pow(x,y); // Potencia em java, equivale a x(base) elevado a y(expoente)

Math.sqrt(x); // Raiz quadrada em java, equivale à raiz quadrada de x

Float.parseFloat(arg[0]); /** usado para coverter um valor do tipo float que
está armazenado em formato de string (ex: '5.0')
para para o formato de double (ex: 5.0) **/


E o código completo:




/**
* TREINO JAVA
* AUTOR: Paulo Henrique
*
* Data: 08/02/2009
*/

public class DistanciaEntre2Pontos
{
public static void main(String arg[])
{

//System.out.println(Math.pow(2,3)); => 8.0 => pow(base,potencia)
//System.out.println(Math.sqrt(9)); => 3.0 => sqrt(valor)

double distancia = 0, // distancia entre 2 pontos P1(x1,y1) e P2(x2,y2)

x1 = 0,
y1 = 0,
x2 = 0,
y2 = 0;

/**
* Para manipular os argumentos, é necessário converter de String para float:
* | String valor = "9.2";
* | float convertido;
* | convertido = Float.parseFloat(valor);
*/

if (arg.length == 4) // se tem 4 argumentos na linha de comando
{

x1 = Float.parseFloat(arg[0]);
y1 = Float.parseFloat(arg[1]);
x2 = Float.parseFloat(arg[2]);
y2 = Float.parseFloat(arg[3]);

distancia = Math.sqrt( Math.pow( (x1 - x2),2 ) +
Math.pow( (y1 - y2),2 ) );
}

System.out.println("Distancia entre Ponto1 e Ponto2: " + distancia);

}
}

0 comentários: