c# - 如何找到给定方向向量和向上向量的 x、y 和 z 旋转角度?

标签 c# vector matrix xna transformation

我有一个代表场景中模型的父类(super class)对象。该对象包含一个 3D 向量,position 表示它的位置和三个变量 xyz 来描述它的位置围绕这些轴旋转。其变换矩阵计算如下:

Matrix.CreateRotationX(x) *
Matrix.CreateRotationY(y) *
Matrix.CreateRotationZ(z) *
Matrix.CreateTranslation(position)

这一切都很好,除了在某些情况下我需要根据标准化计算 xyz 的值方向向量和向上向量。我该怎么做?

最佳答案

将矩阵转换为四元数:

四元数 q = Quaternion.CreateFromRotationMatrix(matrix);

然后复制粘贴the last method found on this page并通过它运行你的四元数。

关于c# - 如何找到给定方向向量和向上向量的 x、y 和 z 旋转角度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8303113/

相关文章:

c++ - txt 中的 vector 垫

c++ - 将 vector 读/写到文件的有效方法

opencv - 访问 OpenCV Mat 元素会给出错误的结果

python - 如何在整个 numpy 矩阵中获取最大(顶部)N 个值

c++ - 运算符 [] 错误的矩阵类代理

c# - Observable.Window 和 .Zip 无法正常运行

c# - 使用 Xamarin MediaManager 流式传输音频

c# - 如果我的接口(interface)必须返回 Task 什么是无操作实现的最佳方法?

c# - 如何在 Windows Phone 8.1 中显示模态窗体

java - Java Vector 中的唯一数字