修复显示部分-连接模块的bug2018-12-04

可视化人工神经网络开发日记

今天又是让人脱发的修复bug环节,先来看看有什么bug:

1、在缩放操作的时候,有两个线程对同一个字典操作了,出现了以下bug:


修复显示部分-连接模块的bug2018-12-04_第1张图片
图1

我决定加个锁;

2、有时候鼠标move这个输入会在离开窗口的时候null,如果组件管理部分没有刷新完成会出现以下bug:


修复显示部分-连接模块的bug2018-12-04_第2张图片
图2

因此我决定上个锁,并且把置null删除,让它不null了,反正位置不会变;

3、由于在快速移动鼠标的时候,可能会导致连接长度变成0,因此导致一个小块都没有了,无法更新长度,为了应对这种情况,

当长度小于一个小块的长度时,置长度为一个小块长度;

4、为每个组件加一个新函数,复选判断,判断组件是否在这个矩形范围内,选中就返回true,没有选中就返回false;


修复显示部分-连接模块的bug2018-12-04_第3张图片
图3

这下代码简洁多了,另外扩展性也很好;

5、我为连接组件也加了复选判断函数,只要全部小块没有被全框住,就不会判断为这个连接组件被选择:

修复显示部分-连接模块的bug2018-12-04_第4张图片
图4
修复显示部分-连接模块的bug2018-12-04_第5张图片
图5


修复显示部分-连接模块的bug2018-12-04_第6张图片
图6


修复显示部分-连接模块的bug2018-12-04_第7张图片
图7

6、写了一个连接的单击选定函数,也叫碰撞函数,就是说如果鼠标停在那个地方,连接就会高亮,

说实话这个比上面那些函数要复杂,相当于这个坐标是否落在这个不规则几何图形的判断(这个写+调试大概一小时⑧,太菜了):

修复显示部分-连接模块的bug2018-12-04_第8张图片
图8


修复显示部分-连接模块的bug2018-12-04_第9张图片
图9


修复显示部分-连接模块的bug2018-12-04_第10张图片
图10

7、滚轮操作和移动操作一起用的话会导致组件错位,所以我把它们弄成互斥事件了;

今天到此结束###&&&

上一篇日记:没有

下一篇日记:增加了一个删除功能和修复了一个bug2018-12-05

你可能感兴趣的:(修复显示部分-连接模块的bug2018-12-04)