Así que me han dado un proyecto en el que tengo que escribir un programa Java para devolver los ángulos entre los lados de un triángulo dados esos tres lados como parámetros de un método. Existe una fórmula matemática que podemos usar para derivar una ecuación que podemos usar llamada ley de los cosenos, que es lados dados de un triángulo a, byc, c ^ 2 = a ^ 2 + b ^ 2 - 2ab * cos (C) donde C es un ángulo entre los lados ayb . Podemos aislar el ángulo C y obtenemos la ecuación arccos ((- c ^ 2 + a ^ 2 + b ^ 2) / 2ab) = C . La matemática es bastante simple y es fácil de implementar en Java, pero cuando ingreso los lados 3, 4, 5, que deberían producir una salida de 90, 30, 60, obtengo los ángulos 53.130102, 36.86989, 90.0. Definitivamente, estos no son los ángulos de un triple pitagórico como 3, 4, 5. ¿Alguien sabe dónde me equivoqué?

Código:

import static java.lang.Math.sqrt; 
import static java.lang.Math.acos; 
import static java.lang.Math.pow;
import static java.lang.Math.PI;

class Main {
  public static void main(String[] args) {

    anglesFinder(3, 4, 5);

  }

  public static void anglesFinder(int a, int b, int c) {

    double alpha;
    double beta;
    double gamma;
    alpha = (double) Math.acos((Math.pow(b, 2) + Math.pow(c, 2) - Math.pow(a, 2)) / (2 * c * b));
    beta = (double) Math.acos((Math.pow(a, 2) + Math.pow(c, 2) - Math.pow(b, 2)) / (2 * a * c));
    gamma = (double) Math.acos((Math.pow(a, 2) + Math.pow(b, 2) - Math.pow(c, 2)) / (2 * a * b)); 
    System.out.println("angle between a & b is: " + (beta * (180 / Math.PI)));
    System.out.println("angle between a & c is: " + (alpha * (180 / Math.PI)));
    System.out.println("angle between b & c is: " + (gamma * (180 / Math.PI)));
  }
}
0
Jodast 9 oct. 2019 a las 19:10

1 respuesta

La mejor respuesta

Su programa es correcto pero usted es incorrecto. Se esperarían ángulos de 30, 60 y 90 grados para un triángulo rectángulo de lados de longitud (proporcional) 1, sqrt (3) / 2 (aproximadamente 0.866) y 2, que no escala a longitudes 3, 4, y 5.

Mi calculadora da aproximadamente 0,6 para el coseno de 53,130102 grados y aproximadamente 0,8 para el coseno de 36,86989 grados, que coincide con las longitudes 3, 4 y 5.

3
rgettman 9 oct. 2019 a las 16:18