首页 > 编程知识 正文

已知三角形三条边怎么求面积,知道三角形两个边长怎么求面积

时间:2023-05-06 21:11:17 阅读:209032 作者:3233

在二维坐标系中,已知三角形的三个点A、B、C的坐标分别为 ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) (x1,y1),(x2,y2),(x3,y3) (x1,y1),(x2,y2),(x3,y3),三角形的面积公式为:

法一: S = 1 2 ∣ x 1 ( y 2 − y 3 ) + x 2 ( y 3 − y 1 ) + x 3 ( y 1 − y 2 ) ∣ S=frac12|x1(y2-y3)+x2(y3-y1)+x3(sfdbg)| S=21​∣x1(y2−y3)+x2(y3−y1)+x3(y1−y2)∣法二:已知三个点坐标,可得三角形三条边长度 a 、 b 、 c a、b、c a、b、c,可得 p = a + b + c 2 p=frac{a+b+c}2 p=2a+b+c​, p p p为三角形周长的一半,即
S = p ( p − a ) ( p − b ) ( p − c ) S=sqrt{p(p-a)(p-b)(p-c)} S=p(p−a)(p−b)(p−c) ​

法一代码实现:

double TriangleArea(vector<double>& point1, vector<double>& point2, vector<double>& point3,) {return 0.5*(point1[0]*(point2[1]-point3[1])+point2[0]*(point3[1]-point1[1])+point3[0]*(point1[1]-point2[1]));}

法二代码实现:

double GetLength(const vector<double>& p1, const vector<double>& p2){int x=p1[0]-p2[0]; int y=p1[1]-p2[1]; return sqrt(x*x+y*y);}double TriangleArea(vector<double>& point1, vector<double>& point2, vector<double>& point3,) {double a=GetLength(point1,point2);double b=GetLength(point1,point3);double c=GetLength(point2,point3);double p=0.5*(a+b+c);return sqrt(p*(p-a)*(p-b)*(p-c));}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。