2 chunye19950806 chunye19950806 于 2015.05.26 23:01 提问

求任意多边形窗口裁剪圆的算法

求用一个任意多边形(注意不仅仅是矩形,是任意多边形)窗口裁剪圆(在多边形窗口外的圆的部分去掉,内的部分保留(不是什么外切内切圆,是和多边形窗口相交的圆))的具体算
法,求大神解答!!!

5个回答

gamefinity
gamefinity   Rxr 2015.05.27 05:54
  • 这个是解析几何题
  • 暂时的想法是这样,有待优化
  • 1.任取三点,求外接圆的圆心
  • 2.对所有任意三点,均求这样的圆心,将这些圆心做数值平均,作为目标园的圆心。
  • 3.取各点到圆心的距离,最长的作为半径
  • 4.画圆
tongyi55555
tongyi55555   2015.05.27 09:19

这个问题单独拿出来感觉比较有难度,因为不知道该如何表示任意多边形这个实例。
如果放到GIS中我们使用两个多边形(包括圆形、矩形、任意多边形)的交运算实现。

xy707707
xy707707   2015.05.27 17:15

到圆心距离大于半径的多边形的点都去掉。。。。。
或者制作一个圆形mask 挺方便的,,,效率比较高

chunye19950806
chunye19950806   2015.05.27 23:04

额 可能你们理解错问题了 给个图你们看就明白了图片说明

henuyx
henuyx   2015.05.30 11:12

我的思路

相当于求圆内(包括圆的边上)有n个点,求这n个点组成的多边形的面积+该多边形与圆外接那部分的面积

再进行化解多边形面积可以每三个点组成的三角形面积,这样所有三角形之和就是多边形的面积。

(这里的每三个点,不是所有组合,可以按x坐标排序,相邻的三点组成的三角形)

求多边形和外接圆之间的那部分面积

可以通过圆心和圆上的那些点求得,即扇形的面积减去三角的面积(圆心和圆上两点组成的三角形)

可能有多个外接的交点,同上按x排序,每相邻两个和圆心组成的扇形/三角形 求值


个人理解

Csdn user default icon
上传中...
上传图片
插入图片