可視化人工神經(jīng)網(wǎng)絡(luò)開發(fā)日記
今天又是讓人脫發(fā)的修復(fù)bug環(huán)節(jié),先來看看有什么bug:
1、在縮放操作的時(shí)候,有兩個(gè)線程對(duì)同一個(gè)字典操作了,出現(xiàn)了以下bug:

我決定加個(gè)鎖;
2、有時(shí)候鼠標(biāo)move這個(gè)輸入會(huì)在離開窗口的時(shí)候null,如果組件管理部分沒有刷新完成會(huì)出現(xiàn)以下bug:

因此我決定上個(gè)鎖,并且把置null刪除,讓它不null了,反正位置不會(huì)變;
3、由于在快速移動(dòng)鼠標(biāo)的時(shí)候,可能會(huì)導(dǎo)致連接長(zhǎng)度變成0,因此導(dǎo)致一個(gè)小塊都沒有了,無法更新長(zhǎng)度,為了應(yīng)對(duì)這種情況,
當(dāng)長(zhǎng)度小于一個(gè)小塊的長(zhǎng)度時(shí),置長(zhǎng)度為一個(gè)小塊長(zhǎng)度;
4、為每個(gè)組件加一個(gè)新函數(shù),復(fù)選判斷,判斷組件是否在這個(gè)矩形范圍內(nèi),選中就返回true,沒有選中就返回false;

這下代碼簡(jiǎn)潔多了,另外擴(kuò)展性也很好;
5、我為連接組件也加了復(fù)選判斷函數(shù),只要全部小塊沒有被全框住,就不會(huì)判斷為這個(gè)連接組件被選擇:




6、寫了一個(gè)連接的單擊選定函數(shù),也叫碰撞函數(shù),就是說如果鼠標(biāo)停在那個(gè)地方,連接就會(huì)高亮,
說實(shí)話這個(gè)比上面那些函數(shù)要復(fù)雜,相當(dāng)于這個(gè)坐標(biāo)是否落在這個(gè)不規(guī)則幾何圖形的判斷(這個(gè)寫+調(diào)試大概一小時(shí)⑧,太菜了):



7、滾輪操作和移動(dòng)操作一起用的話會(huì)導(dǎo)致組件錯(cuò)位,所以我把它們弄成互斥事件了;
今天到此結(jié)束###&&&
上一篇日記:沒有