有关区域相交的判断,不能用区域句柄,只能通过形成区域的点来判断

vc_xiaoxin 2002-03-13 10:44:06
因为在CE中不能用CreatePolygonRgn生成区域句柄,所以不能用有关区域句柄的一些函数来判断一些点形成的区域是否在屏幕上。
用一般的方法不是不能判断出来,而是我自己的方法好象太差,想问各位有没有好的方法。因为我需要这个方法要比较快!

注意,区域和屏幕范围的关系才几种,相交,包含,不相交,不包含。
我是这样想的,
先看区域上是否有点在屏幕中, 有则相交为TRUE
没有时看是屏幕上的四个角落的点是否落在区域中,有则相交为TRUE
(因为区域形状多种,所以还要先计算出区域的最大最小点组成的RECT,然后才好判断)
如果还未判断出来,则计算区域和屏幕是否相交,这里就要用区域上的每两个点组成的直线方程和屏幕上四个点组成的直线求是否有交点,当区域的点数较多时,计算量可能比较多,所以其实我觉得这种方法不可取,但是又找不到更好的办法,希望各位给予指点。





...全文
63 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,649

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧