所謂鼠標(biāo)移動(dòng)軌跡,就是指拖動(dòng)鼠標(biāo)左鍵,可以用一條不消失的曲線記錄下鼠標(biāo)移動(dòng)的軌跡。要求使用C++或者OpenGL或者Ogre來(lái)實(shí)現(xiàn)。請(qǐng)給出一個(gè)思路即可,具體代碼我來(lái)寫(xiě)。因?yàn)槲椰F(xiàn)在能想到的方案效率都不高。
2 回答

慕神8447489
TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個(gè)贊
這么簡(jiǎn)單的功能根本不需要圖形庫(kù),用mfc就搞定了。
首先在鼠標(biāo)左鍵按下里,記錄下起點(diǎn)
然后再鼠標(biāo)移動(dòng)事件里,記錄下鼠標(biāo)當(dāng)前位置,用一個(gè)數(shù)組保存,同時(shí)繪制出這個(gè)點(diǎn)和上個(gè)點(diǎn)間的線段。
最后在鼠標(biāo)抬起事件里,完成點(diǎn)坐標(biāo)的記錄。
需要在重繪函數(shù)里添加整個(gè)軌跡的繪制操作,這樣繪制的軌跡不會(huì)被擦除。
若要實(shí)現(xiàn)CAD交互繪圖的拖拽效果,可以使用SetROP2這個(gè)函數(shù)。

LEATH
TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個(gè)贊
這和OpenGL或Ogre有什么關(guān)系么。。
用一個(gè)容器比如標(biāo)準(zhǔn)庫(kù)的vector不斷記錄發(fā)給窗體的WM_MOUSEMOVE消息的坐標(biāo),然后依次繪制直線即可。用GDI的LineTo就搞定了。
- 2 回答
- 0 關(guān)注
- 142 瀏覽
添加回答
舉報(bào)
0/150
提交
取消