erosion版
从 Trac 迁移的文章
这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。
原文章内容如下:
{{{
struct pot{
double x,y;
pot() { x=0; y=0; }
pot(double _x, double _y):x(_x),y(_y){};
};
double cross(pot a,pot b) { return a.x*b.y-a.y*b.x; }
pot to_v(pot a,pot b) { pot c=pot(b.x-a.x,b.y-a.y); return c; }
//直线相交
pot intersection_line(pot u1,pot u2,pot v1,pot v2)
{
pot ret = u1;
double t = ((u1.x-v1.x)*(v1.y-v2.y) - (u1.y-v1.y)*(v1.x-v2.x))
/ ((u1.x-u2.x)*(v1.y-v2.y) - (u1.y-u2.y)*(v1.x-v2.x));
ret.x += (u2.x-u1.x) * t;
ret.y += (u2.y-u1.y) * t;
return ret;
}
}}}
struct pot{
double x,y;
pot() { x=0; y=0; }
pot(double _x, double _y):x(_x),y(_y){};
};
double cross(pot a,pot b) { return a.x*b.y-a.y*b.x; }
pot to_v(pot a,pot b) { pot c=pot(b.x-a.x,b.y-a.y); return c; }
//直线相交
pot intersection_line(pot u1,pot u2,pot v1,pot v2)
{
pot ret = u1;
double t = ((u1.x-v1.x)*(v1.y-v2.y) - (u1.y-v1.y)*(v1.x-v2.x))
/ ((u1.x-u2.x)*(v1.y-v2.y) - (u1.y-u2.y)*(v1.x-v2.x));
ret.x += (u2.x-u1.x) * t;
ret.y += (u2.y-u1.y) * t;
return ret;
}