如何实现选中某一对象,不要程序,只要这个思路?

来源:百度知道 编辑:UC知道 时间:2024/05/31 02:11:37
例如:我用CAD画了一条直线,这时我再用鼠标单击这条直线就可以把他选中,这在后台编程中是如何实现的,思路是什么?

假定你的全部图元都是是用一个基类Shape。
那么Shape提供两个函数:

1. boolean IsInsideShape (Point p) ;
检查p是否在图形范围内。
2. boolean IsOnShapeLine (Point p) ;
检查p是否在图形的线条上。

为了优化处理,可以再提供一个函数:
3. Rectangle GetShapeOutlineBox () ;
这里返回一个矩形,用于快速判断点是否在图形中。这个函数也可以用于实现简单的图形Clip。

实现时,首先取得鼠标的坐标,并换算到你的图形坐标。
然后遍历图元列表,依次判断点是否在OutlineBox中,判断是否在线上或者在图形内部。

假如你的图形允许重叠,那么需要为图形设定不同的层(其实就是在列表中的排列顺序),来解决冲突。