Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

#include<iostream>

#include<fstream>
#include<iomanip>
#include<math.h>
using namespace std;
int main()
{
double x, y;
double x0, y0,x1, y1, x2, y2, x3, y3, x4, y4, x5, y5;
double d1,d2,r1,r2; bool p;
cout << "Input Vertex of triangle ";
cin>>x0>>y0>>x1>>y1>>x2>>y2>>x3>>y3>>x4>>y4>>x5>>y5;
cout << "Input point ";
cin>>x>>y;
d1 = x1 - x0;
d2 = y1 - y0;
r1 = (x - x0)*d2 - (y -y0)*d1;
r2 = (x2 - x0)*d2 - (y2-y0)*d1;
if( (r1 >= 0 && r2 >= 0)||(r1 <= 0 && r2 <= 0) ) p=true ;
else p = false;
if(p) {
d1 = x2 - x0;
d2 = y2 - y0;
r1 = (x - x0)*d2 - (y -y0)*d1;
r2 = (x1 - x0)*d2 - (y1-y0)*d1;
if( (r1 >= 0 && r2 >= 0)||(r1 <= 0 && r2 <= 0) ) p=true ;
else p = false;
}
if(p) {
d1 = x2 - x1;
d2 = y2 - y1;
r1 = (x - x1)*d2 - (y -y1)*d1;
r2 = (x0 - x1)*d2 - (y0-y1)*d1;
if( (r1 >= 0 && r2 >= 0) || (r1 <= 0 && r2 <= 0) ) p=true ;
else p = false;
}
if (p){
d1 = x2 - x3;
d2 = y2 - y3;
r1 = (x - x3)*d2 - (y -y3)*d1;
r2 = (x0 - x3)*d2 - (y0-y3)*d1;
if( (r1 >= 0 && r2 >= 0)||(r1 <= 0 && r2 <= 0) ) p=true ;
else p = false;
}
if(p) {
d1 = x0 - x3;
d2 = y0 - y3;
r1 = (x - x3)*d2 - (y -y3)*d1;
r2 = (x2 - x3)*d2 - (y2-y3)*d1;
if( (r1 >= 0 && r2 >= 0)||(r1 <= 0 && r2 <= 0) ) p=true ;
else p = false;
}
if(p) {
d1 = x0 - x2;
d2 = y0 - y2;
r1 = (x - x2)*d2 - (y -y2)*d1;
r2 = (x3 - x2)*d2 - (y3-y2)*d1;
if( (r1 >= 0 && r2 >= 0) || (r1 <= 0 && r2 <= 0) ) p=true ;
else p = false;
}
if (p){
d1 = x4 - x0;
d2 = y4 - y0;
r1 = (x - x0)*d2 - (y -y0)*d1;
r2 = (x3 - x0)*d2 - (y3-y0)*d1;
if( (r1 >= 0 && r2 >= 0)||(r1 <= 0 && r2 <= 0) ) p=true ;
else p = false;
}
if(p) {
d1 = x3 - x0;
d2 = y3 - y0;
r1 = (x - x0)*d2 - (y -y0)*d1;
r2 = (x4 - x0)*d2 - (y4-y0)*d1;
if( (r1 >= 0 && r2 >= 0)||(r1 <= 0 && r2 <= 0) ) p=true ;
else p = false;
}
if(p) {
d1 = x3 - x4;
d2 = y3 - y4;
r1 = (x - x4)*d2 - (y -y4)*d1;
r2 = (x0 - x4)*d2 - (y0-y4)*d1;
if( (r1 >= 0 && r2 >= 0) || (r1 <= 0 && r2 <= 0) ) p=true ;
else p = false;
}
if (p){
d1 = x5 - x4;
d2 = y5 - y4;
r1 = (x - x4)*d2 - (y -y4)*d1;
r2 = (x3 - x4)*d2 - (y3-y4)*d1;
if( (r1 >= 0 && r2 >= 0)||(r1 <= 0 && r2 <= 0) ) p=true ;
else p = false;
}
if(p) {
d1 = x3 - x4;
d2 = y3 - y4;
r1 = (x - x4)*d2 - (y -y4)*d1;
r2 = (x5 - x4)*d2 - (y5-y4)*d1;
if( (r1 >= 0 && r2 >= 0)||(r1 <= 0 && r2 <= 0) ) p=true ;
else p = false;
}
if(p) {
d1 = x3 - x5;
d2 = y3 - y5;
r1 = (x - x5)*d2 - (y -y5)*d1;
r2 = (x4 - x5)*d2 - (y4-y5)*d1;
if( (r1 >= 0 && r2 >= 0) || (r1 <= 0 && r2 <= 0) ) p=true ;
else p = false;
}
cout <<(p?" YES":"NO")<<endl; //���� p=true �� YES, ���� p=false, �� NO
system("pause");
return 0;
}

You might also like