给定整数A和B表示平行四边形的边长, Y 即平行四边形的对角线D1和D2的边和长度之间的角度以及对角线的相交处的角度为0 ,任务是从提供的信息中找到平行四边形的面积。
A parallelogram is a type of quadrilateral that has equal and parallel opposite sides and angle between them is not right angle.
例子:
Input: A = 6, B = 10, 0 = 30
Output: 18.48
Explanation:
For the given sides 6 and 10 and for the angle 30 degree the area of parallelogram will be 18.48.
Input: A = 3, B = 5, Y = 45
Output: 10.61
Explanation:
For the given sides 3 and 5 and for the angle 45 degree the length of diagonal will be 10.61.
Input: D1 = 3, D2 = 5, 0 = 90
Output: 7.5
Explanation:
For the given diagonals 3 and 5 and for the angle 90 degree the area of parallelogram will be 7.5.
方法:可以通过以下三个公式来计算平行四边形的面积:
- 从给定的A边和B边以及对角线之间的角度,可以通过以下公式计算平行四边形的面积:
Area of Parallelogram for sides and angle between diagonals = ((A2 – B2) * tan 0) / 2
- 从给定的A边和B边以及两边之间的角度,可以通过以下公式计算平行四边形的面积:
Area of Parallelogram for sides and angle between sides = A * B * sin Y
- 从给定的对角线D1和D2的长度以及它们之间的角度,可以通过以下公式计算平行四边形的面积:
Area of Parallelogram for diagonals and angle between diagonals = (D1 * D2 * sin 0)/2
下面是上述方法的实现:
C++
// C++ program for the
// above approach
#include
using namespace std;
double toRadians(int degree)
{
double pi = 3.14159265359;
return ((double)degree * (pi / 180));
}
// Function to return the area of
// parallelogram using sides and
// angle at the intersection of diagonal
double Area_Parallelogram1(int a, int b,
int theta)
{
// Calculate area of parallelogram
double area = (abs(tan(toRadians(theta))) / 2) *
abs(a * a - b * b);
// Return the answer
return area;
}
// Function to return the area of
// parallelogram using sides and
// angle at the intersection of sides
double Area_Parallelogram2(int a, int b,
int gamma)
{
// Calculate area of parallelogram
double area = (abs(sin(toRadians(gamma)))) *
abs(a * b);
// Return the answer
return area;
}
// Function to return the area of
// parallelogram using diagonals and
// angle at the intersection of diagonals
static double Area_Parallelogram3(int d1, int d2,
int theta)
{
// Calculate area of parallelogram
double area = (abs(sin(toRadians(theta))) / 2) *
abs(d1 * d2);
// Return the answer
return area;
}
// Driver Code
int main()
{
// Given diagonal and angle
int d1 = 3;
int d2 = 5;
int theta = 90;
// Function call
double area = Area_Parallelogram3(d1,
d2,
theta);
// Print the area
printf("%.2f", area);
}
// This code is contributed by rutvik_56
Java
// Java program for above approach
import java.io.*;
class GFG{
// Function to return the area of
// parallelogram using sides and
// angle at the intersection of diagonal
static double Area_Parallelogram1(int a, int b,
int theta)
{
// Calculate area of parallelogram
double area = (Math.abs(Math.tan(
Math.toRadians(theta))) / 2) *
Math.abs(a * a - b * b);
// Return the answer
return area;
}
// Function to return the area of
// parallelogram using sides and
// angle at the intersection of sides
static double Area_Parallelogram2(int a, int b,
int gamma)
{
// Calculate area of parallelogram
double area = (Math.abs(Math.sin(
Math.toRadians(gamma)))) *
Math.abs(a * b);
// Return the answer
return area;
}
// Function to return the area of
// parallelogram using diagonals and
// angle at the intersection of diagonals
static double Area_Parallelogram3(int d1, int d2,
int theta)
{
// Calculate area of parallelogram
double area = (Math.abs(Math.sin(
Math.toRadians(theta))) / 2) *
Math.abs(d1 * d2);
// Return the answer
return area;
}
// Driver code
public static void main (String[] args)
{
// Given diagonal and angle
int d1 = 3;
int d2 = 5;
int theta = 90;
// Function call
double area = Area_Parallelogram3(
d1, d2, theta);
// Print the area
System.out.format("%.2f", area);
}
}
// This code is contributed by offbeat
Python3
# Python3 program for the above approach
import math
# Function to return the area of
# parallelogram using sides and
# angle at the intersection of diagonal
def Area_Parallelogram1(a, b, theta):
# Calculate area of parallelogram
area = (abs(math.tan(math.radians(theta)))/2) \
* abs(a**2 - b**2)
# Return the answer
return area
# Function to return the area of
# parallelogram using sides and
# angle at the intersection of sides
def Area_Parallelogram2(a, b, gamma):
# Calculate area of parallelogram
area = (abs(math.sin(math.radians(gamma)))) \
* abs(a * b)
# Return the answer
return area
# Function to return the area of
# parallelogram using diagonals and
# angle at the intersection of diagonals
def Area_Parallelogram3(d1, d2, theta):
# Calculate area of parallelogram
area = (abs(math.sin(math.radians(theta)))/2) \
* abs(d1 * d2)
# Return the answer
return area
# Driver Code
# Given diagonal and angle
d1 = 3
d2 = 5
theta = 90
# Function Call
area = Area_Parallelogram3(d1, d2, theta)
# Print the area
print(round(area, 2))
C#
// C# program for
// the above approach
using System;
class GFG{
// Function to return the area of
// parallelogram using sides and
// angle at the intersection of diagonal
static double Area_Parallelogram1(int a, int b,
int theta)
{
// Calculate area of parallelogram
double area = (Math.Abs(Math.Tan((theta *
Math.PI) / 180)) / 2) *
Math.Abs(a * a - b * b);
// Return the answer
return area;
}
// Function to return the area of
// parallelogram using sides and
// angle at the intersection of sides
static double Area_Parallelogram2(int a, int b,
int gamma)
{
// Calculate area of parallelogram
double area = (Math.Abs(Math.Sin((gamma *
Math.PI) / 180))) *
Math.Abs(a * b);
// Return the answer
return area;
}
// Function to return the area of
// parallelogram using diagonals and
// angle at the intersection of diagonals
static double Area_Parallelogram3(int d1, int d2,
int theta)
{
// Calculate area of parallelogram
double area = (Math.Abs(Math.Sin((theta *
Math.PI) / 180)) / 2) *
Math.Abs(d1 * d2);
// Return the answer
return area;
}
// Driver code
public static void Main(String[] args)
{
// Given diagonal and angle
int d1 = 3;
int d2 = 5;
int theta = 90;
// Function call
double area = Area_Parallelogram3(d1, d2, theta);
// Print the area
Console.Write("{0:F2}", area);
}
}
// This code is contributed by Rajput-Ji
Javascript
7.5
时间复杂度: O(1)
辅助空间: O(1)