📜  给定边的任何三角形的外接圆面积

📅  最后修改于: 2021-10-23 09:11:27             🧑  作者: Mango

给定一个已知边 a、b 和 c 的三角形;任务是找到其外接圆的面积。
例子:

Input: a = 2, b = 2, c = 3
Output: 7.17714

Input: a = 4, b = 5, c = 3
Output: 19.625

方法:
对于边长为 a、b 和 c 的三角形,

外接圆半径: R = \frac{abc}{\sqrt{\left ( \left ( a+b+c \right )\left ( a+b-c \right )\left ( a+c-b \right )\left ( b+c-a \right ) \right )}}= \frac{abc}{4\sqrt{\left ( s\left ( a+b-s \right )\left ( a+c-s \right )\left ( b+c-s \right ) \right )}}= \frac{abc}{4A}其中 A = √(s*(sa)*(sb)*(sc)) 和 s = (a+b+c)/2 是半周长。因此,外接圆的面积: Area = \pi R^{2}

下面是上述方法的实现:

C++
// C++ Program to find the area
// the circumcircle of the given triangle
 
#include 
using namespace std;
 
// Function to find the area
// of the circumcircle
float circlearea(float a, float b, float c)
{
 
    // the sides cannot be negative
    if (a < 0 || b < 0 || c < 0)
        return -1;
 
    // semi-perimeter of the circle
    float p = (a + b + c) / 2;
 
    // area of triangle
    float At = sqrt(p * (p - a) * (p - b) * (p - c));
 
    // area of the circle
    float A = 3.14 * pow(((a * b * c) / (4 * At)), 2);
    return A;
}
 
// Driver code
int main()
{
 
    // Get the sides of the triangle
    float a = 4, b = 5, c = 3;
 
    // Find and print the area of the circumcircle
    cout << circlearea(a, b, c) << endl;
 
    return 0;
}


Java
// Java Program to find the area
// the circumcircle of the given triangle
import java.*;
class gfg
{
// Function to find the area
// of the circumcircle
public double circlearea(double a, double b, double c)
{
 
    // the sides cannot be negative
    if (a < 0 || b < 0 || c < 0)
        return -1;
 
    // semi-perimeter of the circle
    double p = (a + b + c) / 2;
 
    // area of triangle
    double At = Math.sqrt(p * (p - a) * (p - b) * (p - c));
 
    // area of the circle
    double A = 3.14 * Math.pow(((a * b * c) / (4 * At)), 2);
    return A;
}
}
 
class geek
{
// Driver code
public static void main(String[] args)
{
    gfg g = new gfg();
    // Get the sides of the triangle
    double a = 4, b = 5, c = 3;
 
    // Find and print the area of the circumcircle
    System.out.println(g.circlearea(a, b, c));
 
}
}
 
//This code is contributed by shk..


Python3
# Python3 Program to find the area
# the circumcircle of the given triangle
import math
 
# Function to find the area
# of the circumcircle
def circlearea(a, b, c):
 
    # the sides cannot be negative
    if (a < 0 or b < 0 or c < 0):
        return -1;
 
    # semi-perimeter of the circle
    p = (a + b + c) / 2;
 
    # area of triangle
    At = math.sqrt(p * (p - a) *
                  (p - b) * (p - c));
 
    # area of the circle
    A = 3.14 * pow(((a * b * c) / (4 * At)), 2);
    return A;
 
# Driver code
 
# Get the sides of the triangle
a = 4;
b = 5;
c = 3;
 
# Find and print the area
# of the circumcircle
print (float(circlearea(a, b, c)));
 
# This code is contributed
# by Shivi_Aggarwal


C#
// C# Program to find the area
// the circumcircle of the given triangle
using System;
class gfg
{
 // Function to find the area
 // of the circumcircle
 public double circlearea(double a, double b, double c)
 {
 
    // the sides cannot be negative
    if (a < 0 || b < 0 || c < 0)
        return -1;
 
    // semi-perimeter of the circle
    double p = (a + b + c) / 2;
 
    // area of triangle
    double At = Math.Sqrt(p * (p - a) * (p - b) * (p - c));
 
    // area of the circle
    double A = 3.14 * Math.Pow(((a * b * c) / (4 * At)), 2);
    return A;
 }
}
 
class geek
{
 // Driver code
 public static int Main()
 {
    gfg g = new gfg();
    // Get the sides of the triangle
    double a = 4, b = 5, c = 3;
 
    // Find and print the area of the circumcircle
    Console.WriteLine(g.circlearea(a, b, c));
 
    return 0;
 }
}
//This code os contributed by SoumikMondal


PHP


Javascript


输出:
19.625