📜  菱形的对角线长度,使用侧面和顶点角度的长度

📅  最后修改于: 2021-04-21 22:32:38             🧑  作者: Mango

给定两个整数Atheta ,分别表示菱形边的长度和顶角,任务是找到菱形对角线的长度。

例子:

方法:
可以使用余弦定律解决该问题。使用由菱形的对角线和边形成的三角形上的余弦定律,可以得出以下关系来计算对角线的长度:

下面是上述方法的实现:

C++
// C++ program to implement
// the above approach
#include 
using namespace std;
  
// Function to calculate the length
// of diagonals of a rhombus using
// length of sides and vertex angle
double Length_Diagonals(int a, double theta)
{
    double p = a * sqrt(2 + (2 * cos(
           theta * (3.141 / 180))));
    double q = a * sqrt(2 - (2 * cos(
           theta * (3.141 / 180))));
             
    cout << fixed << setprecision(2) << p
         << " " << q; 
}
  
// Driver Code 
int main() 
{ 
    int a = 6;
    int theta = 45;
    
    // Function Call 
    Length_Diagonals(a, theta); 
    
    return 0; 
} 
  
// This code is contributed by Virusbuddah_


Java
// Java program to implement
// the above approach
class GFG{
  
// Function to calculate the length
// of diagonals of a rhombus using
// length of sides and vertex angle
static double[] Length_Diagonals(int a, double theta)
{
    double p = a * Math.sqrt(2 + (2 *
                   Math.cos(theta * (Math.PI / 180))));
  
    double q = a * Math.sqrt(2 - (2 *
                   Math.cos(theta * (Math.PI / 180))));
  
    return new double[]{ p, q };
}
  
// Driver Code
public static void main(String[] args) 
{
    int A = 6;
    double theta = 45;
      
    double[] ans = Length_Diagonals(A, theta);
  
    System.out.printf("%.2f" + " " + "%.2f",
                      ans[0], ans[1]);
}
}
  
// This code is contributed by Princi Singh


Python3
# Python Program to implement
# the above approach
import math
  
# Function to calculate the length
# of diagonals of a rhombus using
# length of sides and vertex angle
def Length_Diagonals(a, theta):
  
    p = a * math.sqrt(2 + (2 * \
            math.cos(math.radians(theta))))
              
    q = a * math.sqrt(2 - (2 * \
            math.cos(math.radians(theta))))
  
    return [p, q]
  
  
# Driver Code
A = 6
theta = 45
  
ans = Length_Diagonals(A, theta)
  
print(round(ans[0], 2), round(ans[1], 2))


C#
// C# program to implement
// the above approach
using System;
class GFG{
  
// Function to calculate the length
// of diagonals of a rhombus using
// length of sides and vertex angle
static double[] Length_Diagonals(int a, double theta)
{
    double p = a * Math.Sqrt(2 + (2 *
                   Math.Cos(theta * (Math.PI / 180))));
  
    double q = a * Math.Sqrt(2 - (2 *
                   Math.Cos(theta * (Math.PI / 180))));
  
    return new double[]{ p, q };
}
  
// Driver Code
public static void Main(String[] args) 
{
    int A = 6;
    double theta = 45;
      
    double[] ans = Length_Diagonals(A, theta);
  
    Console.Write("{0:F2}" + " " + "{1:F2}",
                            ans[0], ans[1]);
}
}
  
// This code is contributed by gauravrajput1


输出:
11.09 4.59






时间复杂度: O(1)
辅助空间: O(1)