Se les llama triángulos oblicuángulos, a aquellos triángulos
que no poseen ángulos internos de 90 grados (es decir, no son triángulos
rectángulos).
A, B y C: Lados del triángulo
a, b, c: Ángulos internos del triángulo
Si para los triángulos rectángulos se tiene el teorema de
Pitágoras para su resolución, aparte de las funciones trigonométricas, para los
triángulos oblicuángulos se tienen las llamadas ley del seno y del coseno.
Ley del seno: La medida de cada
lado del triángulo oblicuángulo es proporcional al seno del ángulo interno
opuesto a dicho lado.
Ley del coseno: El cuadrado de la medida de un lado de un
triángulo oblicuángulo es igual a la suma de los cuadrados de los otros dos
lados menos el doble producto de la medida de los mismos por el coseno del
ángulo interno que forman entre ellos.
A continuación se presenta una implementación muy básica de
estas leyes, utilizando el lenguaje Java, por medio de una clase de Java en
donde se codifican cuatro métodos.
1) El primer método utiliza la ley del seno para calcular la
medida del lado A cuando se conocen las medidas del lado B, del ángulo b opuesto
al lado B y del ángulo a opuesto al lado A:
2) El segundo método utiliza la ley del seno para calcular
la medida del ángulo a cuando se conocen las medidas de los lados A, B y el
ángulo b opuesto al lado B:
3) El tercero método utiliza la ley del coseno para calcular
la medida de un lado A cuando se conocen las medidas de los lados B y C y el ángulo
a entre B y C:
4) El cuarto método utiliza la ley del coseno para calcular
la medida del ángulo a cuando se conocen las medidas de los lados A, B y C:
Para la prueba del código se utilizó el siguiente triángulo
oblicuángulo:
A = 3 unidades de longitud
B = 5 unidades de longitud
C = 7 unidades de longitud
a = 21 grados
b = 35 grados
c = 124 grados
Código:
/**
* PruebaOblicuangulos.java
* Implementación
básica de métodos que aplican la ley del seno y la ley del
* coseno para la
resolución de triángulos oblicuángulos, tanto para calcular
* ángulos internos
como lados de dichos triángulos.
*
* @author J.B.
*/
class Oblicuangulo
{
// En esta clase
se implementan en forma básica métodos para calcular
// las medidas de
lados y ángulos internos de un triángulo oblicuángulo
// utilizando las
leyes del seno y del coseno
Oblicuangulo() {}
double
senoCalcularLadoA(double ladoB, double anguloA, double anguloB)
{
// Aplica ley
del seno para calcular un lado del triángulo
// Cuando se
conoce un lado B, el ángulo opiesto a dicho lado
// y el ángulo
opuesto al lado desconocido.
double r = 0;
anguloA =
(anguloA * Math.PI) / 180; // Conversión a radianes
anguloB =
(anguloB * Math.PI) / 180;
r = ladoB *
(Math.sin(anguloA) / Math.sin(anguloB));
return r;
}
double
senoCalcularAnguloA(double ladoA, double ladoB, double anguloB)
{
// Aplica ley
del seno para calcular un ángulo interno opuesto a un lado
// conocido,
cuando se conocen dos lados y un ángulo opuesto a uno de los lados.
double r = 0;
anguloB =
(anguloB * Math.PI) / 180;
r =
Math.asin((Math.sin (anguloB) * (ladoA / ladoB)));
r = r * (180 /
Math.PI);
return r;
}
double
cosenoCalcularLadoA(double ladoB, double ladoC, double anguloA)
{
// Aplica ley
del coseno para calcular la medida de un lado cuando se conocen
// dos lados y
el ángulo entre dichos lados.
double r = 0;
anguloA =
(anguloA * Math.PI) / 180;
r =
Math.sqrt(Math.pow(ladoB, 2) + Math.pow(ladoC, 2) - (2 *(ladoB) * (ladoC) *
Math.cos(anguloA)));
return r;
}
double
cosenoCalcularAnguloA(double ladoA, double ladoB, double ladoC)
{
// Aplica ley
del coseno para calcular la medida de un ángulo interno
// cuando se
conocen la medida de los tres lados del triángulo
double r = 0;
r =
Math.acos((Math.pow(ladoA,2) - Math.pow(ladoB, 2) - Math.pow(ladoC, 2)) / (-2 *
ladoB* ladoC));
r = r * (180 /
Math.PI);
return r;
}
}
public class PruebaOblicuangulos {
public static void
main(String[] args) {
Oblicuangulo
obj = new Oblicuangulo();
double ladoA,
ladoB, ladoC;
double
anguloA, anguloB, anguloC;
double r;
/* Utilizando
la ley del coseno para calcular la medida
* de un lado
A cuando se conocen las medidas de los lados
* B y C y el
angulo a entre B y C:
*/
System.out.println("Lado A por ley del coseno:");
ladoB = 5;
ladoC = 7;
anguloA = 21;
r =
obj.cosenoCalcularLadoA(ladoB, ladoC, anguloA);
System.out.println("El valor de la medida del lado A es:" +
r);
/* Utilizando
la ley del coseno para calcular la medida
* del ángulo
a cuando se conocen las medidas de los lados
* A, B y
C:
*/
System.out.println("");
System.out.println("Ángulo a por ley del coseno:");
ladoB = 5;
ladoC = 7;
ladoA = 3;
r =
obj.cosenoCalcularAnguloA(ladoA, ladoB, ladoC);
System.out.println("El valor de la medida del ángulo A es:" +
r);
/* Utilizando
la ley del seno para calcular la medida
* del ángulo
a cuando se conocen las medidas de los lados
* A, B y el
ángulo b opuesto al lado B:
*/
System.out.println("");
System.out.println("Ángulo A por ley del seno:");
ladoA = 3;
ladoB = 5;
anguloB = 35;
r =
obj.senoCalcularAnguloA(ladoA, ladoB, anguloB);
System.out.println("El valor de la medida del ángulo A es:" +
r);
/* Utilizando
la ley del seno para calcular la medida
* del lado A
cuando se conocen las medidas del lado B, del ángulo b
* opuesto al
lado B y del ángulo a opuesto al lado A:
*/
System.out.println("");
System.out.println("Lado A por ley del seno:");
ladoB = 5;
anguloB = 35;
anguloA = 21;
r =
obj.senoCalcularLadoA(ladoB, anguloA, anguloB);
System.out.println("El valor de la medida del lado A es:" +
r);
}
}
Ejecución:
Entre las mejoras que pueden hacerse a la clase Oblicuángulo
están:
- Verificación de que los lados del triángulo así como sus
ángulos internos efectivamente pueden formar uno de acuerdo a sus medidas.
- Implementar un método de conversión entre grados y
radianes y viceversa
- Sobrecarga de constructores para permitir que los
parámetros puedan ser ingresados por teclado
- Permitir a la clase tener propiedades que representen
tanto los lados como los ángulos internos.
No hay comentarios:
Publicar un comentario