Quipex

833

Mar 6th, 2017
385
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.39 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.     long long ax, ay, bx, by, cx, cy, dx, dy;
  8.     double urav1, urav2;
  9.  
  10.     cin >> ax >> ay >> bx >> by >> cx >> cy >> dx >> dy;
  11.  
  12.     urav1 = (by-ay)*dx+(ax-bx)*dy+(ay*bx-ax*by);
  13.     urav2 = (by-ay)*cx+(ax-bx)*cy+(ay*bx-ax*by);
  14.     if ((urav1 >= 0 && urav2 >= 0)||
  15.         (urav1 <= 0 && urav2 <= 0))
  16.     {
  17.         //cout << "urav1=" << urav1 <<";urav2="<< urav2 << endl;
  18.     }else{ //разные знаки - не в пределах треугольника
  19.         cout << "Out";
  20.         return 0;
  21.     }
  22.     urav1 = (by-cy)*dx+(cx-bx)*dy+(cy*bx-cx*by);
  23.     urav2 = (by-cy)*ax+(cx-bx)*ay+(cy*bx-cx*by);
  24.     if ((urav1 >= 0 && urav2 >= 0)||
  25.         (urav1 <= 0 && urav2 <= 0))
  26.     {
  27.         //cout << "urav1=" << urav1 <<";urav2="<< urav2 << endl;
  28.     }else{ //разные знаки - не в пределах треугольника
  29.         cout << "Out";
  30.         return 0;
  31.     }
  32.     urav1 = (cy-ay)*dx+(ax-cx)*dy+(ay*cx-ax*cy);
  33.     urav2 = (cy-ay)*bx+(ax-cx)*by+(ay*cx-ax*cy);
  34.     if ((urav1 >= 0 && urav2 >= 0)||
  35.         (urav1 <= 0 && urav2 <= 0))
  36.     {
  37.         //cout << "urav1=" << urav1 <<";urav2="<< urav2 << endl;
  38.         cout << "In";
  39.         return 0;
  40.     }else{ //разные знаки - не в пределах треугольника
  41.         cout << "Out";
  42.         return 0;
  43.     }
  44.     return 0;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment