2013-02-27 56 views
0

在其中一個渲染場景中,我的相機集中在箭頭處。我縮放箭頭,相機焦點改變。我應該如何計算箭頭所需的平移值以對抗由於縮放而導致的平移並保持相機焦點不變? (我不能改變相機變量) enter image description here 假設紅色圓圈是相機焦點。第二幀顯示了所需的行爲。由於縮放而取消翻譯

回答

2

如果您將相機轉換爲原點,將其縮放,然後將其翻轉(按比例轉換),將相機放置在正確的位置。當不在原點時縮放事物往往會使它們遠離原點,因爲它們的位置以及其他所有東西都會縮放。

+0

「(按比例換算)」如果我用'Sy'縮放y,那麼y方向上的平移的數學方程是什麼? – control 2013-02-27 13:43:43

+0

只能在Y軸上縮放,您應該有一個縮放矢量<1,y,1>然後將它與任何縮放比例相乘(如果它不是三維矢量,則縮放比例只需填充其他組件1) – Fonix 2013-02-27 13:58:02

+0

爲什麼要縮放第二個翻譯?如果將一個點從(50,50)轉換爲原點,則縮放將使其位於原點,並且需要將其轉換回(50,50)。 – beaker 2013-02-28 17:18:58

0

你稱之爲「照相機焦點」是什麼?那是你創造的東西嗎?或OpenGL內的東西?

我會應用該特定點的轉換。我的意思是規模的中心。這樣你會保持這個位置。

+0

我的意思是,翻譯取決於你在哪裏選擇你的規模中心! – darkgaze 2013-02-27 12:36:19

+0

如果您使用glScale,那麼您將無法更改比例中心。 您應該使用變換矩陣重寫該方法: http://en.wikipedia.org/wiki/Transformation_matrix – darkgaze 2013-02-27 12:38:42

+0

這是我創建的東西。我只需要保持箭頭提示在相同的位置。希望你有想法... – control 2013-02-27 12:44:09