1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| void Intersection(PointPoly* p1,PointPoly* p2,PointPoly* a,PointPoly* b){
double c,d,e,t;
double arg1=0,arg2=0;
Point inter;
double result1,result4;
if (a->x==b->x){
std::cout << "( " << a->x << " - " << p1-> x << ") / ( " << p2->x << " - " << p1->x << " ) - ( " << b->x << " - " << a->x << ") " << std::endl;
c= (a->x-p1->x);
d= (p2->x-p1->x);
e= (b->x-a->x);
t= c/(d-e);
/*std::cout << " c = " << c <<std::endl;
std::cout << " d = " << d << std::endl;
std::cout << " e = " << e << std::endl;
std::cout << "t = " << t << std::endl;*/
result1 = p1->x +((p2->x-p1->x)*t);
result4= p1->y+ ((p2->y-p1->y)*t);
/*std::cout << " result1 = " << result1 << std::endl;
std::cout << "result 4 = " << result4 << std::endl;*/
}
else{
arg1=coefa(p1,p2);
std::cout << " arg1 = " << arg1 << std::cout;
std::cout << coefb(a,b) << " - " << coefb(p1,p2) << "/" << coefa(p1,p2) << std::endl;
result1=(coefb(a,b)-coefb(p1,p2))/(coefa(p1,p2)-coefa(a,b));
result4=coefa(p1,p2)*result1+coefb(p1,p2);
std::cout << " result1 = " << result1 << std::endl;
std::cout << "result 4 = " << result4 << std::endl;
}
}
double coefa(PointPoly* p1,PointPoly* p2){
return (p1->y-p2->y)/(p1->x-p2->x);
}
double coefb(PointPoly* p1,PointPoly* p2){
return (p1->y-(p1->y-p2->y)*p1->x/(p1->x-p2->x));
} |
Partager