Функция определяет - лежит ли точка в треугольнике 2D
Код на C++ // Определение площади треугольника double TriangleSquare(double x1, double y1, double x2, double y2, double x3, double y3) { double a=sqrt( pow((x1-x2),2)+pow((y1-y2),2) ); double b=sqrt( pow((x2-x3),2)+pow((y2-y3),2) ); double c=sqrt( pow((x1-x3),2)+pow((y1-y3),2) ); double p=(a+b+c)/2; return sqrt(p*(p-a)*(p-b)*(p-c)); } int PointBelongTriangle(double x, double y, double x1, double y1, double x2, double y2, double x3, double y3) { double s=TriangleSquare(x1,y1,x2,y2,x3,y3); double s1=TriangleSquare(x,y,x2,y2,x3,y3); double s2=TriangleSquare(x1,y1,x,y,x3,y3); double s3=TriangleSquare(x1,y1,x2,y2,x,y); return fabs(s-s1-s2-s3)<=1; }
|