我如何確定(這不是我知道的正確用語):每window space
中鼠標的位置,它被轉換爲OGL space
(-1,1 )。在這種情況下,用戶非常快速地移動鼠標,我假設其所有其以前的位置都轉換爲OGL座標。我想說的是......即使我的C++ OGL coordinates converter
的計算量非常大,它也是一個普通的CPU,能夠快速完成這個任務(跟蹤所有以前的事件)。可以說我在那裏放了非常耗時的循環?或..非常快method()
。如果我足夠快地移動鼠標,我如何確保不會跳出OGL座標? 我不想在這裏得出任何結論或假設別人會想。Windows鼠標座標VS OpenGL鼠標座標
編輯:
我的程序主循環是這樣的(僞):
void Pollevents()
{
for everyt_obj in this
{
if Not Collide()
{
Move(x, y) //
}
}
}
void MousePos()
{
mouse.pos = To_OGL_Coord2f()
}
這些都是單獨的線程中執行(但實際上沒有真正的線程) 假設mouse.pos = (0, 0)
然後我移動鼠標足夠快,使新的mouse.pos
到(10,10)。在循環的單次執行中,鼠標位置與之前的位置相差甚遠。現在,我怎麼能告訴我的程序,通過執行Christian Rau提到的Bresenham's line algorithm
,那個算法產生的那些值(沒有被跟蹤)已經被鼠標穿過。我會添加另一個循環來爲所有這些職位提供幫助嗎?
如果您的計算機在* 13年前被認爲是很慢*,那麼它仍然可以執行每秒超過100億次計算。將一對數字轉換成另一對數字會使你認爲你的電腦無法處理它嗎? – 2013-05-06 09:24:09
我的意思是,該程序正在運行。不是由處理器計算的操作系統。看看[this](http://s23.postimg.org/uoyhevx2z/pos.png) – mr5 2013-05-06 09:37:05
@NicolBolas你可以看到鼠標位置在我將鼠標懸停在窗口。除非這是打印到bash的問題 – mr5 2013-05-06 09:43:05