我有一個C++/OpenGl/Glut應用程序,它具有正投影。標準化「點」
窗口寬500 x 500像素。目前發生鼠標點擊時,該點將在(0,0)和(500,500)之間。
我想採取這一點,並將其轉換爲(0,0)和(0,1)之間(規範化它),或請求glutMouseFunc()發回x和y值的範圍[ 0,1]。這可能嗎?或者我應該看一種更加數學的方法來將x和y值一次一個地轉換爲標準值?
我有一個C++/OpenGl/Glut應用程序,它具有正投影。標準化「點」
窗口寬500 x 500像素。目前發生鼠標點擊時,該點將在(0,0)和(500,500)之間。
我想採取這一點,並將其轉換爲(0,0)和(0,1)之間(規範化它),或請求glutMouseFunc()發回x和y值的範圍[ 0,1]。這可能嗎?或者我應該看一種更加數學的方法來將x和y值一次一個地轉換爲標準值?
取窗口大小,並用鼠標座標除。
只需通過窗口大小劃分座標即可。只要確保你保持窗口大小是最新的(即掛鉤調整大小事件)。這沒有任何成本,並且它沒有辦法顯示在配置文件中。
採用窗口大小並用鼠標線將其分開的問題是什麼? – fazo
@fazo這將是另一種方式,不是嗎? – jrok
@fazo:好的電話!你想正式回答這個問題,所以我可以接受你的答案嗎? – Josh