inton_a_line(doubleax,doubleay,doublebx,doubleby,doublecx,doublecy){doubledx1,dy1,dx2,dy2
上述代码能证明闪电共线
#include
#defineDELTA1e-9
inton_a_line(doubleax,doubleay,doublebx,doubleby,doublecx,doublecy)
{
doubledx1,dy1,dx2,dy2,res;
dx1=bx-ax;dy1=by-ay;dx2=cx-bx;dy2=cy-by;res=dx1*dy2-dy2*dx1;
returnres-DELTA;
}
intsame(doublep1x,doublep1y,doublep2x,doublep2y,doubleax,doubleay,doublebx,doubleby)
{
doubledx,dy,dx1,dy1,dx2,dy2,res;
dx=bx-ax;dy=by-ay;dx1=p1x-ax;dy1=p1y-ay;dx2=p2x-bx;dy2=p2y-by;res=(dx*dy1-dy*dx1)*(dx*dy2-dy*dx2);
returnres>0;
}
intmain(){
doublepx,py,ax,ay,bx,by,cx,cy;
scanf("%lf%lf%lf%lf%lf%lf%lf%lf",&px,&py,&ax,&ay,&bx,&by,&cx,&cy);
if(on_a_line(ax,ay,bx,by,cx,cy))printf("delegaten");elseif(!same(px,py,ax,ay,bx,by,cx,cy)||!same(px,py,bx,by,ax,ay,cx,cy)||!same(px,py,cx,cy,ax,ay,bx,by))printf("outn");
elseif(on_a_line(px,py,bx,by,cx,cy)||on_a_line(px,py,ax,ay,cx,cy)||on_a_line(px,py,ax,ay,bx,by))printf("onn");
elseprintf("inn");
return0;
}