+
point getcrosspoint(point a,point a1,point b,point b1)
{
point base=b1-b;
double d1=abs(cross(base,a-b));
double d2=abs(cross(base,a1-b));
double t=d1/(d1+d2);
point temp=(a1-a)*t;
return a+temp;
}
上述计算过程都会用到|base|,这个数会在计算t时被约分。