Fork me on GitHub
01 2014 档案
几种判断点与多边形关系的算法介绍
摘要:本文讨论如何判断一个点是在多边形内部,边上还是在外部。为了方便,这里的多边形默认为有向多边形,规定沿多边形的正向,边的左侧为多边形的内侧域,即多边形边按逆时针方向遍历,不考虑自交等复杂情况。比较常见的判断点与多边形关系的算法有射线法、面积法、点线判断法和弧长法等,算法复杂度都为O(n),不过只有射线法可以正确用于凹多边形,其他3个只可以用于凸多边形。1. 射线法射线法是使用最广泛的算法,这是由于相比较其他算法而言,它不但可以正确使用在凹多边形上,而且不需要考虑精度误差问题。该算法思想是从点出发向右水平做一条射线,计算该射线与多边形的边的相交点个数,当点不在多边形边上时,如果是奇数,那么点就一定 阅读全文
posted @ 2014-01-29 00:02 coderkian 阅读(10324) 评论(5) 推荐(1)
闲聊叉积在计算几何中一些作用
摘要:定义两个向量的叉积写作a×b,可以定义为a×b=absinθn其中θ表示a和b之间的角度(0°≤θ≤180°)。它位于这两个矢量所定义的平面上。而n是一个与a、b所在平面均垂直的单位矢量。矢量叉积是计算几何算法的核心部分,具有重要的几何意义。一、计算多边形面积设多边形有n个顶点V0(X0,Y0), V1(X1,Y1)... Vn-1(Xn-1, Yn-1),从原点O(0,0)与每条边做三角形,计算的面积和就是多边形面积。三角形面积可以用叉积计算,比如OV0V1面积为:S0=0.5*OV0×OV1=0.5*(X0Y1-X1Y0)于是多边形面积总和 阅读全文
posted @ 2014-01-28 00:55 coderkian 阅读(2455) 评论(10) 推荐(0)
c++11之智能指针
摘要:本文介绍c++的四种智能指针,其中后三种是c++11新增加的,auto _ptr已被弃用。要编译c++11,需要安装g++-4.8sudo add-apt-repository ppa:ubuntu-toolchain-r/testsudo apt-get updatesudo apt-get instal gcc-4.8sudo apt-get install g++-4.8编译时指定标准:g++-4.8 -std=c++11auto_ptr详细请参考这里auto_ptr是为了推动RAII而加入到c++标准的第一个智能指针,它实现了最基本的资源管理,不过与其他类型不同的是,auto_ptr是 阅读全文
posted @ 2014-01-08 22:59 coderkian 阅读(2709) 评论(5) 推荐(3)



作者:coderkian
出处:http://www.cnblogs.com/coderkian/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。