推 eliang:抱歉,我忘了說,我的坐標系的Y軸是上下方向 01/28 17:02
→ eliang:所以我希望滑鼠橫向移動時,攝影機是繞著世界Y軸旋轉 01/28 17:03
OK, 你需要的只是極坐標轉換而己。
設物體位於原點、攝影機距離物體 r,定義一個極坐標如圖:
http://cmlab.csie.org/~littleshan/tmp/polar.png
讓滑鼠橫向移動時改變 phi、縱向移動時改變 theta,
這麼一來攝影機就會繞著 Y 軸旋轉。
依照這個極作標可以得出攝影機的位置 P:
Px = sin(theta) * sin(phi) * r
Py = cos(theta) * r
Pz = sin(theta) * cos(phi) * r
然後攝影機永遠面向物體 (位於原點),有了這些資訊以後,
套上 look-at transform 就可以得到攝影機的 transform matrix。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.29.131
推 eliang:感謝! 我寫出來了 01/29 14:19