使用 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}\rgroup^{2}+\lgroup x_{1}*z_{2}-x_{2}*z_{1}\rgroup^{2}+\lgroup 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

更新於: 2019年10月29日

244 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.