犯罪嫌疑人X
2018-11-28 17:14:58
下面這是三段劃線的代碼,當我自己進入編輯模式后;我點擊鼠標左鍵時,已經(jīng)記錄出左鍵在vcanvas里的相應(yīng)位置。我怎么判斷我點擊的點是否在我畫的線段上?//這是劃線 關(guān)鍵代碼
1 回答

繁華開滿天機
TA貢獻1816條經(jīng)驗 獲得超4個贊
一般像這種你需要先給線段設(shè)定一個可以選取的范圍(四個頂點的x,y),就跟寫游戲一樣。
然后通過獲取canvas內(nèi)的鼠標坐標來判斷鼠標位于哪個對象的選取范圍,這時你可以考慮用觀察者模式來實現(xiàn)事件的綁定。
至于判斷坐標是否在范圍內(nèi)的算法 可以用射線法(考慮到線段可能會旋轉(zhuǎn)和縮放)來判定。
這個雖然我很想幫你,但我寫好的源碼在不久前把電腦硬盤摔壞后就沒了。
我給你寫下基本思路吧:
1.首先設(shè)置范圍就看評論里的例子,四個頂點設(shè)好了我們基本上就有了活動的區(qū)間,至于區(qū)間范圍有多大看你個人需求。
2.“觀察者模式”(發(fā)布-訂閱者模式)可以網(wǎng)上搜一下基本代碼,其實很容易懂的。
3.至于旋轉(zhuǎn)后坐標的算法,點這里(注意這里是逆時針旋轉(zhuǎn)的公式),直接套用就好。
4.射線法你可能需要用到 向量 來計算,請回憶下你的高中數(shù)學(xué)。
鏈接我都給你補好了,先慢慢學(xué)吧??瓷先ズ軣似鋵嵕秃苋菀?。
添加回答
舉報
0/150
提交
取消