(Unreal 4.8.1) 围绕一定距离外的点旋转时,如何计算播放器控制器的xy和z

(Unreal 4.8.1) How do you calculate the x y and z of the player controller when rotating around a point a certain distance away

我的界面上有 4 个箭头。一个箭头指向一个方向:上、下、左、右。当你 select 一个箭头时,我希望播放器控制器围绕一个点朝那个方向旋转,同时面向那个点。我有点迷失在变换、矢量和旋转器(俯仰、偏航、滚动)的逻辑中。谁能帮我解决这个逻辑问题?我在蓝图中工作。

由于您以非交换方式混合转换,因此最好在每次需要时重复计算。

需要 5 个阶段,一个距离和两个角度。 一张图说明一下:

  1. 将您的播放器沿 +ve Z 方向平移您希望它远离该点的距离
  2. 使其朝向-ve Z方向(0, 0, -1)
  3. 绕x轴旋转θ(顺时针方向看轴)-矩阵P
  4. 将其绕 z 轴旋转 ϕ(同样)- 矩阵 Q
  5. 通过从原点到点的位移来平移它(所以,点表示为它的位置向量)-矩阵T

P和Q需要的矩阵:https://en.wikipedia.org/wiki/Rotation_matrix#Basic_rotations

我假设你知道翻译矩阵:)

跟踪每个角度并在按下箭头键时更改它们。另外,您需要的最终矩阵是 TPQ(按此顺序相乘);每次需要时重新计算 - 不用担心所需的处理能力。