利用CRgn判断点是否在图形内部和图形是否在图形内部

这篇博客介绍了如何利用MFC中的CRgn类来解决几何图形计算问题,包括判断点是否在图形内部以及图形是否在另一个图形内部。作者探讨了人眼判断图形包含关系的原理,并推测CRgn可能采用了类似像素扫描的方法。文章提到了使用CRgn的关键函数,如CreatePolygonRgn、PtInRegion、CombineRgn和EqualRgn,并建议读者参考官方文档以获取详细信息。
摘要由CSDN通过智能技术生成

CRgn是MFC中封装好的一个类,官方文档详细介绍如下:

https://msdn.microsoft.com/zh-cn/library/6y4t32t5.aspx

前段时间因为项目需要做几何图形计算,计算归结起来就是两个看起来很简单的问题:

1、判断点是否在图形内部;

2、判断图形是否在图形内部;

我的第一反应就是在网上找各种算法,确实有人提供了一些算法判断点在图形内部,再包装一下写一个判断多边形在多边形内部的算法也没什么问题。然后把我需要计算的图形全部拟合成多边形,搞定。

但是我总在想,为什么判断图形包含关系这种算法,人只需要看一眼就能知道结果而用几何计算却如此复杂。

人看图形判断包含关系的,究其本质就是人眼扫描了图形像素,看两个图形像素有没有重叠的部分,很显然用计算机视觉相关算法来解决这个问题也是一种不错的思路。

于是我就继续找,最后发现了这个CRgn。我猜测,它的内部也是通过作像素扫描来完成判断的。


使用的基本使用过程就是,先CreatePolygonRgn,然后主要使用下面几个函数:

1、PtInRegion判断点是否在区域内

2、CombineRgn对两个区域求交集

3、EqualRgn判断两个区域是否相等

4、CombineRgn对两个区域进行求交集或者并集之类的处理

最后就是使用完毕之后记得DeleteObj

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值