三角形面积的两种求法
1、已知三顶点坐标求三角形面积
对于两个列向量(x1, y1)和(x2, y2),我们将上述两个向量合并形成一个2*2的矩阵,当前矩阵的行列式就等于这两台向量所围成的平行四边形的面积,三角形的面积就是当前平行四边形面积的一半。
| x1 x2|
| y1 y2|
假如两个向量分别为(0, 1) (2, 1), 那么这两个向量形成的矩阵的行列式为2*1-1*0 , 结果等于2,也就是当前平行四边形的面积,因此三角形的面积就是1。
当我们知道三角形的三个点之后,我们就可以将其中的两条边的向量求出来,然后根据这两条向量直接求出三角形的面积。化简后公式如下:
三角形顶点:(x1, y1), (x2, y2), (x3, y3)
面积公式:S=(1/2)*(x1y2+x2y3+x3y1-x1y3-x2y1-x3y2)
代码如下:
#include <iostream>
#include <cmath>using namespace std;//S=(1/2)*(x1y2+x2y3+x3y1-x1y3-x2y1-x3y2)int main(){float num[6];for(int i = 0; i < 6; i++)cin >> num[i];float sum = 0.0;sum = 0.5*(num[0]*num[3]+num[2]*num[5]+num[4]*num[1]-num[0]*num[5]-num[2]*num[1]-num[4]*num[3]);cout << "三角形的面积为: ";sum == 0 ? cout << "Imposiible" : cout <<sum;return 0;
}
2、已知三边长求三角形面积
以下是百度百科关于海伦公式的介绍图片:
代码如下:
#include <iostream>
#include <cmath>using namespace std;int main(){double a, b, c, p, sum;cin >> a>> b>> c;p=(a+b+c)/2;sum=sqrt(p*(p-a)*(p-b)*(p-c));cout << "三角形的面积为: ";sum == 0 ? cout << "Imposiible" : cout << sum;return 0;
}
参考:海伦公式的百度百科介绍