gpt4 book ai didi

camera - 获取由具有已知位置和方向的相机查看的对象的 3D 位置

转载 作者:行者123 更新时间:2023-12-01 14:41:19 26 4
gpt4 key购买 nike

我正在构建一个增强现实应用程序,并且我有摄像头的偏航、俯仰和滚动功能。我想开始在 3D 环境中放置对象。我想让它在用户单击时在相机指向的地方(2D 屏幕的中心)弹出一个 3D 点,当用户移动时,该点在 3D 空间中相应移动。相机不会改变位置,只会改变方向。有没有正确的方法来恢复该点的 3D 位置?我们可以假设所有点都与相机位置等距。

我能够为两个轴独立完成此操作(OpenGL 默认方向)。这适用于垂直轴的变化:

x = -sin(pitch)
y = cos(pitch)
z = 0

这也适用于水平轴的变化:

x = 0
y = -sin(yaw)
z = cos(yaw)

我在想我应该把组合成:

x = -sin(pitch)
y = sin(yaw) * cos(pitch)
z = cos(yaw)

这似乎很接近,但并不完全正确。任何建议将不胜感激!

最佳答案

听起来您只想将旋转向量(俯仰、偏航、滚动)转换为旋转矩阵。转换可以在 Wikipedia article on rotation matrices 上看到.这个想法是,一旦你构建了你的矩阵,就可以简单地转换任何点。

final_pos = rot_mat*initial_pose

其中最终和初始姿势是 3x1 向量,rot_mat 是 3x3 矩阵。

关于camera - 获取由具有已知位置和方向的相机查看的对象的 3D 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12466031/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com