本文介绍了S03E10:利用矩阵操纵“傀儡”物体相对运动求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。
对技术面试,学习经验等有一些体会,在此分享。
说明
一个帮助理解矩阵几何含义的简单问题:假设有两个参照的物体,box1, box2 ,当我(即手机或相机)靠近 box1 时,傀儡物体也靠近 box2;当我走到 box1 后面时,傀儡物体也走到 box2 的后面。
几何
听起来有点复杂,先用简单的二维图像来表示一下我们要做的事情:
这就是一个简单的示意,我相对于 box1 的运动,会 1:1 反映在 Puppet 和 box2 上。但这个图像是二维的,而且只是控制了点的二维平移,没有缩放、旋转和三维的平移。
如果需要在 3D 或 AR 中完成类似操作,包含缩放、旋转和平移,应该怎么做呢?答案是用矩阵运算。先分析一下它们之间的关系:站在 box1 角度看 Me,和站在 box2 角度看 Puppet,姿态矩阵是一样的。用公式表示就是:
//inverse代表矩阵的逆运算 box1.inverse * Me = box2.inverse * Puppet //两边同时左乘 box2,化简得到 box2 * box1.inverse * Me = Puppet
这里我们认为四者都在同一层级,那么box1.inverse * Me
就是站在 box1 看 Me 的姿态,再左乘 box2 就得到了 Puppet 的真实姿态。AR 中效果如图:
说明
一个帮助理解矩阵几何含义的简单问题:假设有两个参照的物体,box1, box2 ,当我(即手机或相机)靠近 box1 时,傀儡物体也靠近 box2;当我走到 box1 后面时,傀儡物体也走到 box2 的后面。
几何
听起来有点复杂,先用简单的二维图像来表示一下我们要做的事情:
这就是一个简单的示意,我相对于 box1 的运动,会 1:1 反映在 Puppet 和 box2 上。但这个图像是二维的,而且只是控制了点的二维平移,没有缩放、旋转和三维的平移。
如果需要在 3D 或 AR 中完成类似操作,包含缩放、旋转和平移,应该怎么做呢?答案是用矩阵运算。先分析一下它们之间的关系:站在 box1 角度看 Me,和站在 box2 角度看 Puppet,姿态矩阵是一样的。用公式表示就是:
//inverse代表矩阵的逆运算 box1.inverse * Me = box2.inverse * Puppet //两边同时左乘 box2,化简得到 box2 * box1.inverse * Me = Puppet
这里我们认为四者都在同一层级,那么box1.inverse * Me
就是站在 box1 看 Me 的姿态,再左乘 box2 就得到了 Puppet 的真实姿态。AR 中效果如图:
说明
一个帮助理解矩阵几何含义的简单问题:假设有两个参照的物体,box1, box2 ,当我(即手机或相机)靠近 box1 时,傀儡物体也靠近 box2;当我走到 box1 后面时,傀儡物体也走到 box2 的后面。
几何
听起来有点复杂,先用简单的二维图像来表示一下我们要做的事情:
这就是一个简单的示意,我相对于 box1 的运动,会 1:1 反映在 Puppet 和 box2 上。但这个图像是二维的,而且只是控制了点的二维平移,没有缩放、旋转和三维的平移。
如果需要在 3D 或 AR 中完成类似操作,包含缩放、旋转和平移,应该怎么做呢?答案是用矩阵运算。先分析一下它们之间的关系:站在 box1 角度看 Me,和站在 box2 角度看 Puppet,姿态矩阵是一样的。用公式表示就是:
//inverse代表矩阵的逆运算 box1.inverse * Me = box2.inverse * Puppet //两边同时左乘 box2,化简得到 box2 * box1.inverse * Me = Puppet
这里我们认为四者都在同一层级,那么box1.inverse * Me
就是站在 box1 看 Me 的姿态,再左乘 box2 就得到了 Puppet 的真实姿态。AR 中效果如图:
部分转自互联网,侵权删除联系
最新评论