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:
Postar um comentário