求一个C语言算法:已知三角形的三个顶点的坐标,求三角形面积

来源:百度知道 编辑:UC知道 时间:2024/06/16 22:04:39
C语言

//三个顶点坐标是6个参数。。。

#include <stdio.h>
#include <math.h>

double S_triangle(double ax,double ay,double bx,double by,double cx,double cy)
{
double mx=cx-ax,my=cy-ay,nx=bx-ax,ny=by-ay;
double Lm= sqrt(mx*mx+my*my),Ln= sqrt(nx*nx+ny*ny),cosA=(mx*nx+my*ny)/Lm/Ln;
double sinA=sqrt(1-cosA*cosA);
double S_tri=0.5*Lm*Ln*sinA;
if(S_tri>=0)return S_tri;
else return (-1*S_tri);
}

void main()
{
double S_tri,ax,ay,bx,by,cx,cy;
ax=1;
ay=1;//第一个点的横纵坐标
bx=2;
by=2;//第二个点的横纵坐标
cx=1;
cy=2;//第三个点的横纵坐标
S_tri=S_triangle(ax,ay,bx,by,cx,cy);
printf("S_triangle=%lf",S_tri);
}

求出 三条边 和 x轴 夹的梯形的面积。

顶点在两端的边的 梯形 面积 设为 c,
另外两个梯形面积 为 a b

梯形c 在三角形的 下端时 三角形面积 为 a+b -c
梯形c 覆盖了 三角形时 , 三角形的面积为 c- a-b

PS: 梯形在 x 轴下的面积为负数

#include<stdio.h>
#include<math.h>
void main()