您的位置:首页 > 其它

任意多边形裁剪圆的实现思路

2015-05-25 19:41 393 查看
多边形裁剪圆的实现思路:

1.求出多边形与圆的交点,记录公共点(包括交点与切点)位置与数量

(1)求出多边形每一条边与圆的公共点位置与数量

(2)汇总多边形所有边与圆交点的位置与数量

2.根据多边形与圆的公共点数量对圆进行分类

(1)公共点个数为0的为“无公共点圆”

(2)公共点数量大于0的位“有公共点圆”

3.对“无公共点圆”进行裁剪

(1)从圆心出发,向左右水平方向取两个圆上的点

(2)判断所取的点是否在多边形内

(3)若所取的点在多边形内,则绘制整个圆

(4)若所取的点不在多边形内,则不绘制这个圆

注:有的论文认为判断“无公共点圆”的圆心与多边形边界的关系就够了,这是不正确的,圆心在边界内的圆的圆弧可以完全在边界外。

4.对“有公共点圆”进行裁剪

(1)对该“有公共点”圆与多边形的交点按逆时针方向排序

(2)对由该“有公共点”圆与多边形的交点在圆上所分割出的圆弧取圆弧中点

(3)判断圆弧中点与多边形的关系(在内、在外、在边界上)

(4)若圆弧中点在边界内,则该圆弧在多边形内,则绘制该圆弧

(5)若圆弧中点在边界外,则该圆弧在多边形外,则不绘制该圆弧

注:这里的圆弧中点不可能落在边界上,假设圆弧中点落在边界上,则该点理应在获取圆与多边形公共点的过程中被记录为公共点,就不可能在本次计算中作为圆弧中点了。

关于实现细节在下一篇文章
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: