En este ejemplo vamos a calcular el área de un pentágono regular. Importante lo de regular… es decir, lados y ángulos iguales.
Calcular el área de un pentágono ya no es tan sencillo como calcular el área de un rectángulo, de un círculo o de un triángulo. En este caso tenemos que conocer que datos nos dan sobre el pentágono.
Los datos básicos que podemos conocer serán.
- lado, correspondiente al tamaño de los lados del pentágono.
- perímetro, es el lado multiplicado por cinco.
- radio, radio del pentagono, o radio de la circunferencia circunscrita al pentagono. Es decir, la circunferencia que pasa por todos los vértices del pentágono.
- apotema, es el radio de la circunferencia inscrita al pentagono. Es decir, la circunferencia que toca todos los lados del pentágono.
Vamos a verlo gráficamente (aunque sea con un hexágono)…
Ahora, dependiendo de los datos que tengamos podemos aplicar una u otra formula para calcular el área del pentágono.
Lo más sencillo, si tenemos el perímetro y el apotema…
AreaPentagono = (perimetro * apotema)/2
El apotema lo podemos sacar con el radio..
Apotema = √ (radio2 - (lado/2)2)
Cuidado con esta formula. Hay que tener en cuenta que √ es la raíz cuadrada de toda la formula.
Y si solo nos dan el lado, podemos aplicar lo siguiente:
AreaPentagono = 1,72048 * lado2
Pasemos a codificar… Lo primero será pedir todos los datos… En este caso vamos a utilizar tipos de datos double. Para poder guardar la precisión de los datos de forma correcta.
Scanner reader = new Scanner(System.in);
System.out.println("Dame el lado del pentagono. Si no lo conoces teclea 0");
lado = reader.nextDouble();
System.out.println("Dame el radio del pentagono. Si no lo conoces teclea 0");
radio = reader.nextDouble();
System.out.println("Dame el apotema del pentagono. Si no lo conoces teclea 0");
apotema = reader.nextDouble();
Como se puede ver hemos utilizado la clase Scanner para obtener la información. Ahora pasaremos, mediante if, a determinar con qué datos contamos y qué formula aplicamos. Que solo tenemos el lado..
if ((radio == 0) && (apotema == 0)){
area = 1.72048 * Math.pow(lado,2);
}
Vemos que para elevar el lado al cuadrado nos apoyamos en la clase Math y en su método pow.
Que tenemos el radio y el lado… Pues calculamos el apotema.
if (apotema == 0) {
apotema = Math.sqrt(Math.pow(radio, 2)-Math.pow(lado/2, 2));
area = ((lado*5)*apotema)/2;
}
En este caso utilizamos el método .sqrt(), también de la clase Math, para calcular la raíz cuadrada del apotema. Y al final, aplicamos la formula sencilla del área.
Que tenemos el apotema y el lado… pues lo más sencillo…
area = ((lado*5)*apotema)/2;
Nota: Échale un ojo a Disfruta de las matemáticas… Te aclarará muchos conceptos y pasarás un buen rato.