![]() |
1
2
问题是,您将位置和旋转分开处理,尽管它们相互影响。让我们把两者放在一起,假设我们有两个摄像机和两个立方体的模型变换(表示为齐次矩阵;假设为列向量)。然后,我们想找到立方体B的变换
请注意
我们可以立即解决
我对Unity API不太熟悉,但似乎无法直接使用转换矩阵。那么,让我们拆分变换矩阵
如果我们只关心旋转,我们可以通过简单地执行以下操作来计算相应的四元数:
要找到平移向量,只需将原点乘以左侧:
在伪代码中,这归结为(出现的矩阵代表各自的翻译向量):
同样,我几乎不知道Unity API,它可能使用了一些与我不同的约定(转换数学中的约定特别复杂)。但我相信,如果有什么不正确的地方,你可以修改上述推导。 |
![]() |
2
0
Nico的回答很好,解决了我的问题,但由于注释部分的代码格式不是为此而构建的,下面是我根据Nico的回答为Unity编写的代码:
|
![]() |
anti · FBXSDK,使用四元数设置旋转关键点? 7 年前 |
![]() |
Paul Spain · 如何用四元数调整欧拉角 7 年前 |
![]() |
mnen · 捕捉对象相对于另一个对象的位置和旋转 7 年前 |
![]() |
anti · 特征点到平面算法,返回四元数? 7 年前 |
![]() |
Matin Lotfaliee · 检查相机是否聚焦在精灵上 8 年前 |
![]() |
Vlad · SlimPath中的LookAt旋转具有Unity3D中的预期值 11 年前 |