给定平行四边形的两个相邻边的 (xi+yj+zk) 形式的两个向量。任务是找出平行四边形的面积。
例子:
Input:
x1 = 3, y1 = 1, z1 = -2
x2 = 1, y2 = -3, z2 = 4
Output: Area = 17.3205081
Input:
x1 = 1, y1 = 3, z1 = 2
x2 = 1, y2 = -3, z2 = 4
Output: Area = 19.078784028338912
方法:假设我们有两个向量 a(x1*i+y1*j+z1*k) 和 b(x2*i+y2*j+z2*k) 并且我们知道平行四边形的面积由下式给出:
Area of parallelogram = magnitude of cross product of vectors a and b i.e |axb|
And we know a X b = (y1*z2 – y2*z1)*i – (x1*z2 – x2*z1)*j + (x1*y2 – x2*y1)*k
Then area =
C++
// C++ code to calculate area of
// parallelogram if vectors of
// 2 adjacent sides are given
#include
using namespace std ;
// Function to calculate area of parallelogram
float area(float x1, float y1, float z1, float x2,
float y2, float z2)
{
float area = sqrt(pow((y1 * z2 - y2 * z1),2)
+ pow((x1 * z2 - x2 * z1),2) +
pow((x1 * y2 - x2 * y1),2));
return area;
}
// Driver Code
int main()
{
float x1 = 3;
float y1 = 1;
float z1 = -2;
float x2 = 1;
float y2 = -3;
float z2 = 4;
float a = area(x1, y1, z1, x2, y2, z2);
cout << "Area = " << a;
return 0;
// This code is contributed
// by Amber_Saxena.
}
Java
// Java code to calculate area of
// parallelogram if vectors of
// 2 adjacent sides are given
public class GFG {
// Function to calculate area of parallelogram
static float area(float x1, float y1, float z1, float x2,
float y2, float z2)
{
float area =(float) Math.sqrt(Math.pow((y1 * z2 - y2 * z1),2)
+ Math.pow((x1 * z2 - x2 * z1),2) +
Math.pow((x1 * y2 - x2 * y1),2));
return area;
}
// Driver code
public static void main (String args[]){
float x1 = 3;
float y1 = 1;
float z1 = -2;
float x2 = 1;
float y2 = -3;
float z2 = 4;
float a = area(x1, y1, z1, x2, y2, z2);
System.out.println("Area = " + a) ;
}
// This code is contributed by ANKITRAI1
}
Python
# Python code to calculate area of
# parallelogram if vectors of
# 2 adjacent sides are given
import math
# to calculate area of parallelogram
def area(x1, y1, z1, x2, y2, z2):
area = math.sqrt((y1 * z2 - y2 * z1) ** 2
+ (x1 * z2 - x2 * z1) ** 2 +
(x1 * y2 - x2 * y1) ** 2)
return area
# main function
def main():
x1 = 3
y1 = 1
z1 = -2
x2 = 1
y2 = -3
z2 = 4
a = area(x1, y1, z1, x2, y2, z2)
print("Area = ", a)
# driver code
if __name__=="__main__":
main()
C#
// C# code to calculate area of
// parallelogram if vectors of
// 2 adjacent sides are given
using System;
class GFG
{
// Function to calculate area
// of parallelogram
static float area(float x1, float y1,
float z1, float x2,
float y2, float z2)
{
float area = (float) Math.Sqrt(Math.Pow((y1 * z2 - y2 * z1), 2) +
Math.Pow((x1 * z2 - x2 * z1), 2) +
Math.Pow((x1 * y2 - x2 * y1), 2));
return area;
}
// Driver code
public static void Main ()
{
float x1 = 3;
float y1 = 1;
float z1 = -2;
float x2 = 1;
float y2 = -3;
float z2 = 4;
float a = area(x1, y1, z1, x2, y2, z2);
Console.Write("Area = " + a) ;
}
}
// This code is contributed
// by ChitraNayal
PHP
Javascript
输出:
Area = 17.320508075688775
如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程和学生竞争性编程现场课程。