求用一个任意多边形(注意不仅仅是矩形,是任意多边形)窗口裁剪圆(在多边形窗口外的圆的部分去掉,内的部分保留(不是什么外切内切圆,是和多边形窗口相交的圆))的具体算
法,求大神解答!!!
这个问题单独拿出来感觉比较有难度,因为不知道该如何表示任意多边形这个实例。
如果放到GIS中我们使用两个多边形(包括圆形、矩形、任意多边形)的交运算实现。
到圆心距离大于半径的多边形的点都去掉。。。。。
或者制作一个圆形mask 挺方便的,,,效率比较高
我的思路
相当于求圆内(包括圆的边上)有n个点,求这n个点组成的多边形的面积+该多边形与圆外接那部分的面积
再进行化解多边形面积可以每三个点组成的三角形面积,这样所有三角形之和就是多边形的面积。
(这里的每三个点,不是所有组合,可以按x坐标排序,相邻的三点组成的三角形)
求多边形和外接圆之间的那部分面积
可以通过圆心和圆上的那些点求得,即扇形的面积减去三角的面积(圆心和圆上两点组成的三角形)
可能有多个外接的交点,同上按x排序,每相邻两个和圆心组成的扇形/三角形 求值
个人理解