首页 > 代码库 > 北大ACM暑期培训课程目录(四)

北大ACM暑期培训课程目录(四)

本文出自:http://blog.csdn.net/svitter


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维空间切开。