计算几何的中途总结

         计算几何已经刷题有两个月了,但是,来到优快云今天来发表第一篇文章。

        说一下这两个月来,我在计算几何中走过的路程。首先,刚开始的时候是在刷线段方面的题目。自我认为这一部分的题目是相当的多的,自己刷题找到是分类。刷过很多的题目,但是我现在能想到的我用过的方法也列一下:线段相交,判断点在多边形的内外(现在会两种方法,直接应用叉积,判断正负号;还有就是面积是否相等来判断。)求直线的交点(用公式求交点,但现在公式基本已经记下来了),线段相交的两种情况(规范相交,非规范相交),二分法,求多边形的重心,求面积,叉积和点积应用。叉积点积应用需要说一下:叉积可以用来判断方向,判断的是左右,符合右手规则;叉积可以用来求面积,求的是有向面积。点积就用来判断点在线段的前后。数量积现在还没做过题目===....====线段的位置关系:相交,平行,共线(平行的特殊情况)。平行的情况是这样来判断:由于两天直线的斜率相等的话,我们就可以说是相等的。例如给出直线AB(x1-x2,y1-y2),CD(x3-x4,y3-y4)    判断(y1-y2)/(x1-x2)与(y3-y4)/(x3-x4)是否相等来判断。但是在计算机中做除法的代价是相当大的,也就是精度的损失是相当大的。如果我们把公式该写一下,变成判断(y1-y2)*(x3-y4)与(x1-x2)*(y3-y4)是否相等。这样不损失精度,但是如果这样的话,还没有排除共线的情况。我们可以把条线段所在直线上的两个端点与另一条线段所在直线上的一个端点能够得到两个向量,向量做叉积运算判断是否为零,就可以说明两条直线的位置关系。

         接下来是凸包。在学习凸包的过程中,我学到了sort()函数的应用。求凸包有两种方法:卷包裹法和步进法。这两种方法的不同就是:卷包裹法需要进行两次排序,第一次排序是找一个做下左的一个点的坐标,以这个点开始进行极角排序,这是第二次排序。卷包裹法也就是围一圈得到的就是一个凸包。步进法是这样的,进行一次排序,就是上面的第一次排序,但是在求凸包的过程中是有不同的。这中求凸包的方法需要进行两次。第一次求出右半凸包,第二次求出左边半个。两次求出来的合在一起就得到了一个凸包。但是本人在按第一种方法写凸包的时候,poj2187就怎么也过不去,但是如果采用第二中方法的时候,1A。现在还想不同为什么

         面积公式问题:pick公式,边上(|x1-x2|,|y1-y2|)满足一个GCD关系,通过这个关系可以把边上的所有的顶点给求出来。面积s=多边形内部顶点说+边上顶点数/2-1;

         半平面交的算法。这个算法感觉好强大,但是貌似还没怎么学会,还需要再回过头来好好刷题目。

         矩形面积并,交,求并后的周长。有两种方法离散化,还有就是线段树+扫描线+离散化。虽然这种题目做的还不少,体会也比上面的半平面交要深刻一些,但是感觉还没有完全学会,也需要再回头来体会。

         最近在做解析几何类的题目,感觉这种题目很好玩。我觉得其中原因之一就是,那些东西在高中都学过,但是用计算机来算的话,还需要好好的学一些编程的方法和技巧。思想是一样的。貌似很多的人都说这写题目比较难,我觉得难也就是难在了编程的技巧上。还好有很多模版我能套用~~。

        模拟退火,旋转卡壳。~~~~~~~三维~~~~~~~,我的计算几何还得走好一段的路程。

        


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值