QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2470|回复: 3

关于光标对应窗口的查找和窗口裁减的矩形区域。

[复制链接]
发表于 2006-6-12 17:45:51 | 显示全部楼层 |阅读模式
这个我以前也用了别的方法。觉得也不算优化。

这里介绍一个宏定义。来自libpng,个人感觉很好。
#define CLIP(a,min,max) MAX(min,MIN(a,max))

这个CLIP实际上就是求出了a,min,max的中间值。

在窗口中一个窗口的x1,x2是已知的。
要判断坐标点的x,是否在窗口里,就是判断x,是否在x1,x2之间。
利用这个函数就轻松实现了。


利用CLIP判断两个窗口是否相交
例如:window1,坐标为ax1,ax2,
         window2,坐标为bx1,bx2,


cx1=CLIP(bx1,ax1,ax2);
cx2=CLIP(bx2,ax1,ax2);

这样只要cx1 !=cx2,就会相交,相交后的坐标为cx1,cx2.
 楼主| 发表于 2006-6-12 17:50:42 | 显示全部楼层
我又看了AnthonyLee的相交的判断方法,和CLIP 原理都一样,程序效率也差别不大。
回复

使用道具 举报

发表于 2006-6-12 20:28:24 | 显示全部楼层
可以学习一下minigui的设计,
再Developworks 上有
http://www-128.ibm.com/developerworks/cn/linux/embed/minigui/minigui-5/index.html
回复

使用道具 举报

 楼主| 发表于 2006-6-13 08:39:45 | 显示全部楼层
我知道minigui是一个不错的图形,但是EGui不参考minigui。
因为1.怕人说抄袭。
2.因为minigui是收费软件,以后说不清。

其实我非常愿意吸收各种软件的优点。但是收费的,我就不参考了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-2 14:31 , Processed in 0.040873 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表