Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm diện tích hình bình hành nếu cho vectơ của hai cạnh kề nhau bằng cách sử dụng C ++.

Giả sử chúng ta có hai vectơ cho hai cạnh kề của một hình bình hành có dạng $ x \ hat {i} + y \ hat {j} + z \ hat {k} $ Nhiệm vụ của chúng ta là tìm diện tích của hình bình hành. Diện tích của hình bình hành là độ lớn của tích chéo của hai vectơ. (| A × B |)

$$ \ rvert \ vec {A} \ times \ vec {B} \ rvert =\ sqrt {\ lgroup y_ {1} * z_ {2} -y_ {2} * z_ {1} \ rgroup ^ {2} + \ lgroup x_ {1} * z_ {2} -x_ {2} * z_ {1} \ rgroup ^ {2} + \ lgroup x_ {1} * y_ {2} -x_ {2} * y_ {1} \ rgroup ^ {2}} $$

Ví dụ

#include<iostream>
#include<cmath>
using namespace std;
float area(float A[], float B[]) {
   float area = sqrt(pow((A[1] * B[2] - B[1] * A[2]),2) + pow((A[0] * B[2] - B[0] * A[2]),2) + pow((A[0] * B[1] - B[0] * A[1]),2));
   return area;
}
int main() {
   float A[] = {3, 1, -2};
   float B[] = {1, -3, 4};
   float a = area(A, B);
   cout << "Area = " << a;
}

Đầu ra

Area = 17.3205