计算几何是直接可以拿kuangbin的板子进行写的,但是还是需要有自己的一些储备。
方法:从平面几何->解析几何
首先,我们需要判断浮点数符号。
const double eps = 1e-8;
//...
int sgn(double x) {
if (fabs(x) < eps)return 0;
if (x < 0)return -1;
else return 1;
}
通过面向对象思想来定义点

直线
struct Line { //点向式直线
Vec dir;
Point pnt;
Line() {}
Line(Vec _dir, Point _pnt) : dir(_dir), pnt(_pnt) {}
};
线段
struct Seg { //两点式线段
Point s, e;
Seg() {}
Seg(Point _s, Point _e) : s(_s), e(_e) {}
};
点到直线距离:|𝑢 ⃗ |⋅𝑠𝑖𝑛⟨𝑢 ⃗,𝑣 ⃗ ⟩=|𝑢 ⃗×𝑣 ⃗ |/|𝑣 ⃗ |
double disPointToLine(Point p)
点到直线投影:|(𝑝𝑛𝑡𝑄) ⃗ |=|𝑢 ⃗ |⋅𝑐𝑜𝑠⟨𝑢 ⃗,𝑣 ⃗ ⟩=|𝑢 ⃗⋅𝑣 ⃗ |/|𝑣 ⃗ |
(𝑝𝑛𝑡𝑄) ⃗=|(𝑝𝑛𝑡𝑄) ⃗ |⋅𝑣 ⃗/|𝑣 ⃗ |=|𝑢 ⃗⋅𝑣 ⃗ |⋅𝑣 ⃗/|𝑣 ⃗ |^2
Point lineProg(Point p)
计算几何主要是套模板,以及熟能生巧。建议直接学习使用kuangbin大神的板子,以达到事半功倍的效果。
5170

被折叠的 条评论
为什么被折叠?



