Calcular el área y la altura de un triángulo isósceles cuyos lados son radios de un círculo

Dados los números enteros R\alpha          que representan el radio de un círculo y el ángulo formado en el centro O por el sector AB ( como se muestra en la figura a continuación ), la tarea es encontrar la altura y el área del triángulo formado al conectar los puntos A , B y O si es posible. De lo contrario, escriba «No es posible».

Ejemplos:

Entrada: R = 5,   \alpha          = 120
Salida: La 
altura del triángulo es 2,5
El área del triángulo es 10,8253
Explicación: El área y la altura dadas se pueden calcular usando las ecuaciones:
Altura =  Rsin((\pi-\alpha)/2)
Área = R\times cos((\pi-\alpha)/2)\times R\times sin((\pi-\alpha)/2)

Entrada: R = 12,  \alpha           = 240
Salida: No es posible

Enfoque: El problema dado se puede resolver con base en las siguientes observaciones:

Observaciones:

  • Supongamos que se dibuja una perpendicular en la cuerda AB desde el punto O y la perpendicular corta la cuerda en el punto D. Entonces la altura del triángulo será OD .>
  • Según propiedad de la circunferencia el punto D divide la cuerda AB en dos partes iguales y el triángulo AOD y BOD serán triángulos semejantes.>
  • Los ángulos ∠OAB y ∠OBA también son iguales ya que el triángulo AOD y BOD son similares y es igual a (\pi - \alpha)/2
  • La altura del triángulo OAB se puede calcular mediante la fórmula:
    • Height(OD)= Rsin((\pi-\alpha)/2)
  • El área del triángulo se puede calcular como:
    • Area(A) = R\times cos((\pi-\alpha)/2)\times R\times sin((\pi-\alpha)/2)

Siga los pasos a continuación para resolver el problema:>

  • Compruebe si el ángulo es mayor que 180 o es igual a 0 y luego imprima «No es posible».
  • Ahora convierte el ángulo en radianes.
  • Calcula el ángulo ∠OAB y ∠OBA como (\pi - \alpha)/2.
  • Ahora imprima la altura y el área del triángulo OAB después de calcularlo usando la fórmula discutida anteriormente.

A continuación se muestra la implementación del enfoque anterior:>

C++

// C++ program for the above approach
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to convert given
// angle from degree to radian
double Convert(double degree)
{
    double pi = 3.14159265359;
    return (degree * (pi / 180));
}
 
// Function to calculate height
// and area of the triangle OAB
void areaAndHeightOfTraingle(
    double radius,
    double a)
{
    if (a >= 180 || a == 0) {
        cout << "Not possible";
        return;
    }
 
    // Stores the angle OAB and OBA
    double base_angle = (180 - a) / 2;
 
    // Stores the angle in radians
    double radians = Convert(base_angle);
 
    // Stores the height
    double height = sin(radians) * radius;
 
    // Print height of the triangle
    cout << "Height of triangle "
         << height << endl;
 
    // Stores the base of triangle OAB
    double base = cos(radians) * radius;
 
    // Stores the area of the triangle
    double area = base * height;
 
    // Print the area of triangle OAB
    cout << "Area of triangle "
         << area << endl;
}
 
// Driver Code
int main()
{
    double R = 5, angle = 120;
    areaAndHeightOfTraingle(R, angle);
 
    return 0;
}

Java

// Java program for the above approach
import java.util.*;
class GFG
{
 
  // Function to convert given
  // angle from degree to radian
  static double Convert(double degree)
  {
    double pi = 3.14159265359;
    return (degree * (pi / 180));
  }
 
  // Function to calculate height
  // and area of the triangle OAB
  static void areaAndHeightOfTraingle(
    double radius, double a)
  {
    if (a >= 180 || a == 0)
    {
      System.out.println("Not possible");
      return;
    }
 
    // Stores the angle OAB and OBA
    double base_angle = (180 - a) / 2;
 
    // Stores the angle in radians
    double radians = Convert(base_angle);
 
    // Stores the height
    double height = Math.sin(radians) * radius;
 
    // Print height of the triangle
    System.out.println("Height of triangle " + height);
 
    // Stores the base of triangle OAB
    double Base = Math.cos(radians) * radius;
 
    // Stores the area of the triangle
    double area = Base * height;
 
    // Print the area of triangle OAB
    System.out.println("Area of triangle " + area);
  }
 
 
  // Driver Code
  public static void main(String[] args)
  {
    double R = 5, angle = 120;
    areaAndHeightOfTraingle(R, angle);
  }
}
 
// This code is contributed by sanjoy_62.

Python3

# Python3 program for the above approach
from math import sin,cos
 
# Function to convert given
# angle from degree to radian
def Convert(degree):
    pi = 3.14159265359
    return (degree * (pi / 180))
 
# Function to calculate height
# and area of the triangle OAB
def areaAndHeightOfTraingle(radius, a):
    if (a >= 180 or a == 0):
        print("Not possible")
        return
 
    # Stores the angle OAB and OBA
    base_angle = (180 - a) / 2
 
    # Stores the angle in radians
    radians = Convert(base_angle)
 
    # Stores the height
    height = sin(radians) * radius
 
    # Print height of the triangle
    print("Height of triangle ", round(height, 1))
 
    # Stores the base of triangle OAB
    base = cos(radians) * radius
 
    # Stores the area of the triangle
    area = base * height
 
    # Print the area of triangle OAB
    print("Area of triangle ", round(area, 4))
 
# Driver Code
if __name__ == '__main__':
    R , angle = 5, 120
    areaAndHeightOfTraingle(R, angle)
     
    # This code is contributed by mohit kumar 29.

C#

// C# program for the above approach
using System;
public class GFG
{
 
    // Function to convert given
    // angle from degree to radian
    static double Convert(double degree)
    {
        double pi = 3.14159265359;
        return (degree * (pi / 180));
    }
     
    // Function to calculate height
    // and area of the triangle OAB
    static void areaAndHeightOfTraingle(
        double radius, double a)
    {
        if (a >= 180 || a == 0)
        {
            Console.WriteLine("Not possible");
            return;
        }
     
        // Stores the angle OAB and OBA
        double base_angle = (180 - a) / 2;
     
        // Stores the angle in radians
        double radians = Convert(base_angle);
     
        // Stores the height
        double height = Math.Sin(radians) * radius;
     
        // Print height of the triangle
        Console.WriteLine("Height of triangle " + height);
     
        // Stores the base of triangle OAB
        double Base = Math.Cos(radians) * radius;
     
        // Stores the area of the triangle
        double area = Base * height;
     
        // Print the area of triangle OAB
        Console.WriteLine("Area of triangle " + area);
    }
 
    // Driver Code
    static public void Main ()
    {
        double R = 5, angle = 120;
        areaAndHeightOfTraingle(R, angle);
    }
}
 
// This code is contributed by AnkThon

Javascript

<script>
 
// Javascript program for the above approach
 
// Function to convert given
// angle from degree to radian
function Convert(degree)
{
    var pi = 3.14159265359;
    return (degree * (pi / 180));
}
 
// Function to calculate height
// and area of the triangle OAB
function areaAndHeightOfTraingle(radius, a)
{
    if (a >= 180 || a == 0)
    {
        document.write("Not possible");
        return;
    }
     
    // Stores the angle OAB and OBA
    var base_angle = (180 - a) / 2;
     
    // Stores the angle in radians
    var radians = Convert(base_angle);
     
    // Stores the height
    var height = Math.sin(radians) * radius;
     
    // Print height of the triangle
    document.write("Height of triangle " + height + "<br>");
     
    // Stores the base of triangle OAB
    var Base = Math.cos(radians) * radius;
     
    // Stores the area of the triangle
    var area = Base * height;
     
    // Print the area of triangle OAB
    document.write("Area of triangle " + area);
}
 
// Driver code
var R = 5, angle = 120;
 
areaAndHeightOfTraingle(R, angle);
 
// This code is contributed by Khushboogoyal499
 
</script>
Producción: 

Height of triangle 2.5
Area of triangle 10.8253

 

Tiempo Complejidad: O(1)
Espacio Auxiliar: O(1) 

Publicación traducida automáticamente

Artículo escrito por saragupta1924 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *