#include <cstdio>
#include <iostream>
using namespace std;
struct Point{
int x;
int y;
Point(int a, int b) :x(a), y(b){ }
friend ostream& operator<<(ostream &os, Point &p);
};
int cross(const Point &a, const Point &b, const Point &p)
{
return (b.x - a.x)*(p.y - a.y) - (b.y - a.y)*(p.x - a.x);
}
bool toLeft(const Point &a, const Point &b, const Point &p)
{
return cross(a, b, p) > 0;
}
bool inTriangle(const Point &p, const Point &a, const Point &b, const Point &c)
{
bool res = toLeft(a, b, p);
if (res != toLeft(b, c, p))
return false;
if (res != toLeft(c, a, p))
return false;
if (cross(a, b, c) == 0) //ABC is in one line
return false;
return true;
}
ostream& operator<<(ostream &os, Point &p)
{
os << "(" << p.x << ", " << p.y << ") " ;
return os;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int x1,y1,x2,y2,x3,y3;
scanf("%d %d %d %d %d %d",&x1,&y1,&x2,&y2,&x3,&y3);
Point A(x1,y1);
Point B(x2,y2);
Point C(x3,y3);
if(x1*y2==x2*y1||x1*y3==x3*y1||x1*y3==x3*y1){cout <<"NO"<<endl;continue;}
Point P(0,0);
if (inTriangle(P, A, B, C))
cout <<"YES"<<endl;
else
cout <<"NO"<<endl;
}
return 0;
}
点(0,0)是否在三角形内
最新推荐文章于 2023-10-14 18:07:54 发布