Length of diagonal of a parallelogram using adjacent sides and angle between them
Last Updated :
27 Aug, 2022
Given two integers a and b where a and b represents the length of adjacent sides of a parallelogram and an angle 0 between them, the task is to find the length of diagonal of the parallelogram.
Examples:
Input: a = 6, b = 10, 0=30
Output: 6.14
Input: a = 3, b = 5, 0=45
Output: 3.58
Approach: Consider a parallelogram ABCD with sides a and b, now apply cosine rule at angle A in the triangle ABD to find the length of diagonal p, similarly find diagonal q from triangle ABC.
Therefore the diagonals is given by:
C++
#include <bits/stdc++.h>
using namespace std;
#define PI 3.147
double Length_Diagonal( int a, int b, double theta)
{
double diagonal = sqrt (( pow (a, 2) + pow (b, 2)) -
2 * a * b * cos (theta * (PI / 180)));
return diagonal;
}
int main()
{
int a = 3;
int b = 5;
double theta = 45;
double ans = Length_Diagonal(a, b, theta);
printf ( "%.2f" , ans);
}
|
Java
class GFG{
static double Length_Diagonal( int a, int b,
double theta)
{
double diagonal = Math.sqrt((Math.pow(a, 2 ) +
Math.pow(b, 2 )) -
2 * a * b *
Math.cos(theta *
(Math.PI / 180 )));
return diagonal;
}
public static void main(String[] args)
{
int a = 3 ;
int b = 5 ;
double theta = 45 ;
double ans = Length_Diagonal(a, b, theta);
System.out.printf( "%.2f" , ans);
}
}
|
Python3
import math
def Length_Diagonal(a, b, theta):
diagonal = math.sqrt( ((a * * 2 ) + (b * * 2 ))
- 2 * a * b * math.cos(math.radians(theta)))
return diagonal
a = 3
b = 5
theta = 45
ans = Length_Diagonal(a, b, theta)
print ( round (ans, 2 ))
|
C#
using System;
class GFG{
static double Length_Diagonal( int a, int b,
double theta)
{
double diagonal = Math.Sqrt((Math.Pow(a, 2) +
Math.Pow(b, 2)) -
2 * a * b *
Math.Cos(theta *
(Math.PI / 180)));
return diagonal;
}
public static void Main(String[] args)
{
int a = 3;
int b = 5;
double theta = 45;
double ans = Length_Diagonal(a, b, theta);
Console.Write( "{0:F2}" , ans);
}
}
|
Javascript
<script>
function Length_Diagonal(a , b,theta)
{
var diagonal = Math.sqrt((Math.pow(a, 2) +
Math.pow(b, 2)) -
2 * a * b *
Math.cos(theta *
(Math.PI / 180)));
return diagonal;
}
var a = 3;
var b = 5;
var theta = 45;
var ans = Length_Diagonal(a, b, theta);
document.write(ans.toFixed(2));
</script>
|
Time Complexity: O(logn) as it is using inbuilt sqrt function
Auxiliary Space: O(1)
Share your thoughts in the comments
Please Login to comment...