您的位置:首页 > 理论基础 > 数据结构算法

三个月的疯狂兔

2007-06-18 15:10 134 查看
 
       上班拉,上班拉,我回来上班拉,在每周的礼拜一的来临的时候我回来上班拉,在这一刻,我不是一个人(是一公司的人),黄继光,戚继光,司马光在这一刻灵魂附体,我继承了中国人民热爱劳动,劳动最光荣的优良传统,我代表cctv、china tv、wc◎#¥%……※
       好了,废话不多说了,转回正题拉~上回说到接口的开发就下班了,那就接着说把~接口的开发主要涉及到定位和状态变化的多种结合,其实这两种主要的操作也是由对象的选择、隐藏等基本操作复合而成,就象乘法运算就是加法的复合运算而已,那么对与基于运算的前提条件是什么那?那就是必须有一个所有数据的集合(废话,没有数据去哪查找运算啊),在vb中我使用dictionary这个有key、item的咚咚,将所有的图元和连接的信息都存入dictionary中,那样就不用因为查找数据时而重复访问数据库了(访问数据库的确是比较费时间和资源),但是这种方法会造成一种缺陷,当数据库发生变化时,尤其时表名发生变化,(例如一开始传入插件的8个视图名发生了变化,而插件中还是连接着原来的视图,那么就会出错)我也没解决这个问题,我做的是当数据库发生类似表名变化时,就屏蔽部分连接表名的功能函数,但这并非釜底抽薪,还是要从根本上解决问题啊~(努力ing)
       扯远了,回到正题上,定位的实现很简单,主要分2种,一种是名称定位,一种是关键字定位(key),因为一般来说我们都不使用名称来做key,而且对于某些情况,我们不知道key却知道名称,所以我写了2种(也许还有其他什么复杂的范围定位啊时间定位啊,不过我觉得那些在插件外面定义比较好,而我得插件只需提供这2个定位功能足以)。关键字定位就不用说,可以直接从dictionary中取出来,那么主要是名称定位,我采用比较笨的方法,遍历所有dictionary中元素,找到item属性中有name属性与我所查找的名称一样的,就取出来,这种办法比较笨(根本都没用到啥牛x的查找算法,555,我对不起我的数据结构老师啊)。至于状态变化的实现,那也是很简单的拉~根据所提供的信息(key或name),按老方法找到指定对象,然后,根据变化成的状态,改变图元或连接的显示属性就可以了(例如图元的图片替换,连接的粗细变化,颜色变化)。
       好了,开发完这些比较容易的接口,下面就是一些比较细节的东西了,比如获取图元周围的所有连接、设置图元及图元周围连接的可见、计算所有图元的相对位置从而确定缩小的最小比例、统计图元的种类并对这几种图元分层、开放鼠标单击双击右键事件接口、实现批量移动图元、保存图元移动后位置、移动图元时连接跟着图元一起移动等等一系列的复合功能的实现,比如实现批量移动图元,其实这个功能分3步:1.批量选择图元 2.获取选择的图元集合 3.移动选择图元,这样把功能分解后就比较清晰了。
       拉拉拉~~先写这么多了,看看还有啥要写的,新的活马上就来拉~
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息