在我看來,在某些情況下,從鼠標讀取更高的精度值,而不僅僅是當前屏幕分辨率的一系列離散像素座標,可能會有用。很明顯,在GUI中不需要這樣做,但對於某些遊戲來說,將它與屏幕分辨率關聯起來可能沒有任何意義。爲什麼不能將鼠標座標作爲浮點值獲取?
爲什麼我們不得不將它讀爲像素座標而不是原始模擬值?
在我看來,在某些情況下,從鼠標讀取更高的精度值,而不僅僅是當前屏幕分辨率的一系列離散像素座標,可能會有用。很明顯,在GUI中不需要這樣做,但對於某些遊戲來說,將它與屏幕分辨率關聯起來可能沒有任何意義。爲什麼不能將鼠標座標作爲浮點值獲取?
爲什麼我們不得不將它讀爲像素座標而不是原始模擬值?
在Windows至少,你可以獲取更高分辨率的座標,從0到0xFFFF,而不是轉化爲屏幕座標中的鼠標位置,用於支持高解析度報告
獲取高分辨率點設備。在x和y座標中,點的範圍可以從0到65,535, (0xFFFF)。這是絕對座標指示設備(如繪圖板)提供的分辨率爲 。
http://msdn.microsoft.com/en-us/library/windows/desktop/ms646259(v=vs.85).aspx
一個可以使用的非標比例達到Mac上的子像素分辨率根據一個答案在這裏:
High resolution and high framerate mouse coordinates on OSX? (Or other solution?)
無論是回答這個問題被接受,但可能值得進一步調查。
這取決於使用的語言和環境。
例如在Pharo或Squeak中使用的Morphic GUI smalltalk使用浮點數作爲其座標
這在此處列出accepted answer。
的Morphic在self
被orignally實現,因爲鼠標不提供模擬,或浮點,值。這已經是一個翻譯。
任何人都在關注評論-1?
鼠標提供的數據密度比屏幕更大。爲了充分利用鼠標的精度,並在屏幕上顯示它,鼠標的座標需要縮小。這或者導致浮點數,或者截斷/舍入。 OP和我贊成浮動。儘管如此,這似乎相當苛刻,這一直到-3沒有評論... –
Windows使用WM_INPUT
和WM_MOUSEMOVE
以及DirectInput和XInput;
默認情況下,它僅支持WM_MOUSEMOVE
主Windows圖形用戶界面,這是完全基於整數的,但如果你同時實現WM_INPUT
和WM_MOUSEMOVE
,你可以移動鼠標光標亞像素精度。
有些方案顯然會佔用大量的利用了這一點,如第1人稱射擊遊戲,網頁瀏覽器(網頁縮放和滾動條),以及圖像編輯程序(如GIMP,PHOTOSHOP等)
另外,讓鼠標同時發送WM_INPUT
和WM_MOUSEMOVE
,並使Windows外殼本身支持它,將使鼠標移動通常顯得更加平滑。
另一方面,這不會提供更高的精度 –