Функция определяет - лежит ли точка в треугольнике 2D на C++


Добавил:DMT
Дата создания:25 апреля 2008, 15:48
Дата обновления:25 апреля 2008, 15:48
Просмотров:6249 последний 23 апреля, 0:43
Комментариев: 0
Функция определяет - лежит ли точка в треугольнике 2D
Код на C++
  1.  
  2.  
  3. // Определение площади треугольника
  4. double TriangleSquare(double x1, double y1, double x2, double y2, double x3, double y3)
  5. {
  6. double a=sqrt( pow((x1-x2),2)+pow((y1-y2),2) );
  7. double b=sqrt( pow((x2-x3),2)+pow((y2-y3),2) );
  8. double c=sqrt( pow((x1-x3),2)+pow((y1-y3),2) );
  9.  
  10. double p=(a+b+c)/2;
  11.  
  12. return sqrt(p*(p-a)*(p-b)*(p-c));
  13. }
  14.  
  15. int PointBelongTriangle(double x, double y, double x1, double y1, double x2, double y2, double x3, double y3)
  16. {
  17. double s=TriangleSquare(x1,y1,x2,y2,x3,y3);
  18. double s1=TriangleSquare(x,y,x2,y2,x3,y3);
  19. double s2=TriangleSquare(x1,y1,x,y,x3,y3);
  20. double s3=TriangleSquare(x1,y1,x2,y2,x,y);
  21.  
  22. return fabs(s-s1-s2-s3)<=1;
  23. }
При использовании обязательна ссылка на http://DMTSoft.ru
up