本文出自:http://blog.csdn.net/svitter
北大ACM计算几何:线与线求交,线与面求交,求凸包,半平面求交等
Computational Geometry
计算几何
ACM中基本是最麻烦的部分。
几何代码都要自己写,STL中也没有。基本上。
struct point
数乘,差乘,计算几何题目抄。一个数字由于误差积累造成大。
避免误差。
注意:
a=b <=> |a-b| < e
a<b <=> a-b < -e
a<=b <=> a-b < e
e 多10^-8
四舍六入五差 +- e
精度问题。(流行技巧)
!!慎用
矢量(向量)
主要就是向量。(不用平面几何)
点积
夹角
a.b反映的是投影。
垂直
正交的东西。缩放(单位长度)
投影长度如何算?投影模。
矢量的对称,入射出射光。
计算几何和解析几何不同。
二维叉积。叉积在二维空间里是一个数字。
三维空间中是一个向量。
叉积满足逆交换律。axb = -bxa
!!计算几何中最常用的概念。
叉积可以算面积。
绝对值的叉积很少用,一般都是基于叉积的。
格林公式?
边缘积分也是这个。
axb的正负。??
a.b可以求出a在b的前面还是后面。(矢量的前后)
axb可以求出左右。
将矢量看成列矢量。
重新理解坐标(a,b) = a * (1, 0) + b*(0,1);
矩阵的逆制。
cmath中-Pi, Pi
点和向量非常不同。
不要写两个结构。
点可以假设成从(0,0)出发的向量。
利用矢量表示。
!!一个点和一个方向向量表示直线!!
视实际情况而定。
直线相交
如果两条直线平行则不想交
点击=0是垂直。
重合即平行加点相同。
!!排除部分情况。
简单多边形的三角化
三角剖分
既有正部分,也有负部分。
求质点组的重心
(a+b+c)/3
把三角形转换成为质点
凸集
!!大胆猜想,不用求证。
水平序Grahan扫描算法
不容易出错。
旋转卡壳算法
如何计算n个点中,距离最大的两个点的距离?
对種点,是一个二元关系。
半平面,一办平面。
高维度空间可以被n-1维空间切开。