Advertisement
Guest User

Точка внутри треугольника

a guest
Apr 23rd, 2017
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.97 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. double dist(int x, int y, int x0, int y0){
  6.     return sqrt((x-x0)*(x-x0) + (y-y0)*(y-y0));
  7. }
  8.  
  9.  
  10. double area_geron(double a, double b, double c){
  11.     double p = (a + b + c) / 2;
  12.     return sqrt(p*(p-a)*(p-b)*(p-c));
  13. }
  14.  
  15. int main()
  16. {
  17.     int x1,y1,x2,y2,x3,y3,px,py;
  18.  
  19.     cin>>x1>>y1>>x2>>y2>>x3>>y3;
  20.     cin>>px>>py;
  21.  
  22.     double a,b,c,d,e,f;
  23.     a = dist(x1,y1,x3,y3);
  24.     b = dist(x2,y2,x3,y3);
  25.     c = dist(x1,y1,x2,y2);
  26.  
  27.  
  28.     d = dist(x1,y1,px,py);
  29.     e = dist(x3,y3,px,py);
  30.     f = dist(x2,y2,px,py);
  31.  
  32.     double area1,area2,area3;
  33.  
  34.     area1 = area_geron(a,d,e);
  35.     area2 = area_geron(b,e,f);
  36.     area3 = area_geron(c,f,d);
  37.  
  38.  
  39.     cout<<area1<<endl;
  40.     cout<<area2<<endl;
  41.     cout<<area3<<endl;
  42.  
  43.     double area = area_geron(a,b,c);
  44.     cout<<area<<endl;
  45.  
  46.     if (abs((area1+area2+area3) - area) <= 0.000001) cout<<"YES";
  47.     else
  48.         cout<<"NO";
  49.  
  50.     system("pause");
  51.     return 0;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement