Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm diện tích hình bình hành nếu cho hai vectơ hai cạnh kề bằ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 dưới 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 hình bình hành. Diện tích hình bình hành là độ lớn của tích có hướng 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; }

Kết quả

Area = 17.3205