我的窗口上有一個矩形,我試圖通過定義矩形的區域來使該矩形可點擊。使對象可點擊(如果鼠標位於對象的區域內,請點擊)
如果鼠標單擊在這個區域內,那麼它是一個點擊其他不是。
對於例如:在窗口,讓我們假設矩形的頂點是:
x = 40, y = 50; width = 200, height = 100;
所以,當
(mouseXPos > getX()) && (mousxPos < (getX()+width)) && (mouseYPos > getY()) && (mouseYPos > getY()+height)
現在,我做的lookAt轉型的點擊會算對象通過繼承一個具有lookAt
函數的類。另外,我正在使用相機檢查物體的不同面(相機旋轉)。因此,當相機使用時,物體沿各個軸旋轉並顯示不同的臉部。
但是,當物體移動時,我會認爲矩形的頂點會改變。矩形的頂點也應該在做gluLookAt
函數時發生了變化,但看起來好像沒有,並且儘管對象不在那裏,但我的點擊區域始終保持靜止。我如何解決這個問題?如何讓我的對象可點擊並在其上添加一些鼠標事件?
讓我們說,如果不是使用相機,我使用Quaternions或其他什麼來進行旋轉,在這種情況下,我會擁有新的座標嗎? – user1240679
如果你正在做自己的轉換,你需要做自己的命中測試,或者以某種方式向GL提供等價的轉換。 – JasonD
我不確定我是否清楚這一點。假設,如果我有一個'gluSphere'我已經應用gluLookAt等,然後我使用四元數來旋轉該球體(或可能在另一個操作中翻譯)。在這種情況下,我可以通過使用此對象的內置函數來獲取座標嗎?如果我會那樣做的話,可能碰到的測試仍然類似於我在上面的問題中寫的。 – user1240679