#include "util.h"
using namespace std;
#define ABS_FLOAT_0 0.0001
struct point_float{
float x;
float y;
};
float GetTriangleSquar(const point_float pt0,const point_float pt1, const point_float pt2){
point_float AB, BC;
AB.x = pt1.x - pt0.x;
AB.y = pt1.y - pt0.y;
BC.x = pt2.x - pt1.x;
BC.y = pt2.y - pt1.y;
return fabs((AB.x * BC.y - AB.y * BC.x)) / 2.0f;
}
bool IsInTriangle(const point_float A, const point_float B, const point_float C, const point_float D){
float SABC, SADB, SBDC, SADC;
SABC = GetTriangleSquar(A,B,C);
SADB = GetTriangleSquar(A,D,B);
SADC = GetTriangleSquar(A,D,C);
SBDC = GetTriangleSquar(B,D,C);
float SumSuqar = SADC + SBDC + SBDC;
if(((SABC - SumSuqar) >= -ABS_FLOAT_0) && ((SABC - SumSuqar) <= ABS_FLOAT_0)){//怎么判断两个float值是否相等呢?通过他们的差值和精度的正负比较
return true;
}
else{
return false;
}
}
int main (){
return 0;
}
PS:关于三角形求面积所用的公式,用的是叉乘求面积:
已知三顶点坐标,求三角形的面积
当然了,也可以使用海伦公式啦。