簡體   English   中英

歐拉相機,在相機本地系統中繞x軸旋轉

[英]Euler camera, rotation around x axis in camera local system

我有一個攝像頭課程,可以通過歐拉角和位置來保持她的方向。 像這樣:

float m_x;
float m_y;
float m_z;

Vector4 m_pos;

我想在空間上自由移動相機。 用戶上下移動鼠標時,攝像頭必須在自己的坐標系中繞x軸旋轉。 但是我只想保持這三個角度和位置,僅此而已。

所以算法看起來像這樣:

  1. 查找相機本地系統軸(u,v,n)
  2. 圍繞u軸以角度alpha旋轉
  3. 查找圍繞(1,0,0),(0,1,0),(0,0,1)的角度,這些角度與圍繞u軸的角度alpha的旋轉有關
  4. 將它們添加到m_x,m_y,m_z

問題是:如何計算默認坐標系中的旋轉角度(我的意思是(1,0,0),(0,1,0)和(0,0,1)),以響應本地相機坐標中的旋轉角度系統?

描述

還是針對此問題存在更好的解決方案?

我正在回答您評論中的簡潔問題:

如何計算一個坐標系中的旋轉響應另一個坐標系中的旋轉?

您可以通過應用合適的變換矩陣來變換坐標系之間的旋轉。 這又可以通過歐拉角來計算,請參閱Wikipedia上有關轉換公式的部分

根據您的應用程序,您可能也可能不必考慮翻譯。 據我了解您的問題,您可以專注於每個變換的旋轉部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM