2024-09-24 22:22:56 发布
网友
我问这个问题是我之前的question的精简版本。现在我有一张脸在屏幕上寻找某个位置,同时也注视着两只眼睛的坐标(俯仰和偏航)。让我们说
左眼=[-0.06222888-0.06577308]
右眼=[-0.04176027-0.44416167]
我想确定这个人可能看到的屏幕坐标?这可能吗?请帮忙!在
你需要的是:
每个眼睛的3D位置和方向
你声称你得到了,但俯仰和偏航只是欧拉角,你还需要一些参考帧和变换顺序,把它们转换回三维矢量。最好用向量形式表示方向(我想你一开始就知道了)。在同一个坐标系中,随着你需要的方向在3D中的位置。。。
投影平面的3D定义
所以你至少需要起始位置和2个定义平面矩形的基本向量。更好的方法是使用4x4 homogenous transform matrix来实现这一点,因为这样可以很容易地从和进入到它的局部坐标系。。。
所以我这样看:
现在只需要找到光线和平面的交点
P(s) = R0 + s*R P(t) = L0 + t*L P(u,v) = P0 + u*U +v*V
解决这个系统将导致获得u,v,这也是你正在观察的平面内的二维坐标。当然,由于不精确,这将不能用代数来解决。因此,最好将光线转换成平面局部坐标,然后用w=0.0计算每条光线上的点(这是一个简单的线性方程,只有一个未知),然后计算左眼和右眼之间的平均位置(以防它们没有完全对齐)。在
u,v
w=0.0
因此,如果R0',R',L0',L'是在UVW局部坐标中转换的值,那么:
R0',R',L0',L'
其中P是你在UVW坐标系中看到的点。。。在
P
转换很容易完成,根据你的符号,你可以用(R,1),(L,1),(R0,0)(L0,0)乘以代表平面的逆矩阵或直接矩阵。第四个坐标(0,1)只告诉你是在变换向量还是点。在
(R,1),(L,1),(R0,0)(L0,0)
0,1
如果不了解坐标系、数据精度以及已知和未知的信息,很难比这更具体。在
如果你的平面是相机的投影平面,那么U,V是从相机拍摄的图像的x轴和y轴,W轴垂直于它(方向只是符号的问题)。在
U,V
因为你使用的是使用透视投影的相机输入,我希望你的位置和向量都能得到修正。在
你需要的是:
每个眼睛的3D位置和方向
你声称你得到了,但俯仰和偏航只是欧拉角,你还需要一些参考帧和变换顺序,把它们转换回三维矢量。最好用向量形式表示方向(我想你一开始就知道了)。在同一个坐标系中,随着你需要的方向在3D中的位置。。。
投影平面的3D定义
所以你至少需要起始位置和2个定义平面矩形的基本向量。更好的方法是使用4x4 homogenous transform matrix来实现这一点,因为这样可以很容易地从和进入到它的局部坐标系。。。
所以我这样看:
现在只需要找到光线和平面的交点
解决这个系统将导致获得
u,v
,这也是你正在观察的平面内的二维坐标。当然,由于不精确,这将不能用代数来解决。因此,最好将光线转换成平面局部坐标,然后用w=0.0
计算每条光线上的点(这是一个简单的线性方程,只有一个未知),然后计算左眼和右眼之间的平均位置(以防它们没有完全对齐)。在因此,如果
^{pr2}$R0',R',L0',L'
是在UVW局部坐标中转换的值,那么:其中
P
是你在UVW坐标系中看到的点。。。在转换很容易完成,根据你的符号,你可以用
(R,1),(L,1),(R0,0)(L0,0)
乘以代表平面的逆矩阵或直接矩阵。第四个坐标(0,1
)只告诉你是在变换向量还是点。在如果不了解坐标系、数据精度以及已知和未知的信息,很难比这更具体。在
如果你的平面是相机的投影平面,那么
U,V
是从相机拍摄的图像的x轴和y轴,W轴垂直于它(方向只是符号的问题)。在因为你使用的是使用透视投影的相机输入,我希望你的位置和向量都能得到修正。在
相关问题 更多 >
编程相关推荐