Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++를 사용하여 인접한 두 변의 벡터가 두 개인 경우 삼각형의 면적 찾기

<시간/>

$x\hat{i}+y\hat{j}+z\hat{k}$ 형태의 삼각형의 인접한 두 변에 대한 두 벡터가 있다고 가정합니다. 우리의 임무는 삼각형의 면적을 찾는 것입니다. 삼각형의 넓이는 두 벡터의 외적 크기입니다. (|A x B|)

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

예시

#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*0.5;
}
int main() {
   float A[] = {3, 1, -2};
   float B[] = {1, -3, 4};
   float a = area(A, B);
   cout << "Area = " << a;
}

출력

Area = 8.66025