- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我目前正在尝试在2d图像(没有opengl或3d图形窗口)中绘制欧拉角的3d表示。图像输出可能类似于以下内容。
本质上,我正在寻找可以采用旋转矩阵或一组欧拉角,然后将其输出到2d图像上的研究或算法,如上。这将在使用OpenCV的C++应用程序中实现。它将用于根据对象的状态在OpenCV窗口上输出注释信息。
我想我已经过分考虑了,因为我应该能够从旋转矩阵分解单位 vector ,然后提取它们的x,y分量并在(0,0)的笛卡尔空间中画一条线。我的想法正确吗?
编辑:我正在寻找一个正交投影。您可以假定上面的图像具有正确的相机/视角。
任何帮助,将不胜感激。
谢谢,
编辑:现在可以在我的仓库中找到示例源代码。
header :https://bitbucket.org/jluzwick/tennisspindetector/src/6261524425e8d80772a58fdda76921edb53b4d18/include/projection_matrix.h?at=master
类定义:https://bitbucket.org/jluzwick/tennisspindetector/src/6261524425e8d80772a58fdda76921edb53b4d18/src/projection_matrix.cpp?at=master
这不是最好的代码,但是它可以工作并显示了获得公认答案中描述的投影矩阵所需的步骤。
另外,这里是实际中的投影矩阵的youtube vid(以及缩放和平移):http://www.youtube.com/watch?v=mSgTFBFb_68
最佳答案
这是我的两分钱。希望能帮助到你。
如果我理解正确,则需要旋转3D坐标系,然后将其正交投影到给定的2D平面上(相对于原始的未旋转的3D坐标系定义了2D平面)。
“旋转和投影坐标的3D系统”是“旋转三个3D基本 vector 并将它们正交投影到2D平面上,以便它们相对于该平面的2D基础成为2D vector ”。让原始的3D vector 不作底漆,然后对所得的2D vector 作底漆。令 {e1,e2,e3} = {e1..3} 为3D正交基础(已给出),而 {e1',e2'} = {e1..2'} 为2D正交基础(我们必须定义)。本质上,我们需要找到 PR * v = v'的运算符 PR 。
尽管我们可以谈论很多关于线性代数,算子和矩阵表示的文章,但发布的时间可能太长了。这么说就足够了:
( -1/sqrt(2) 1/sqrt(2) 0 )
( -1/sqrt(6) -1/sqrt(6) 2/sqrt(6) )
关于c++ - 在二维图像上绘制欧拉角旋转模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18303966/
我有一个第一人称相机 Controller 实现如下: float rotSpeed = 20.0f; xRotation += deltaPos.y * rotSpeed * Time.deltaT
我正在编写一个程序,它加载一个包含场景描述的文件,然后使用 OpenGL 显示它。我将 GLM 用于我的所有数学运算。场景文件中的旋转以四元数格式存储。我的场景管理系统以欧拉角的形式对对象进行旋转,这
我想要实现的效果是从相机的 pointOfView 位置指向一个箭头,在 x 和 z 轴上与场景(和重力)对齐,但指向与相机相同的方向。它可能看起来像这样: 现在,我将其欧拉角 x 和 z 设置为 0
我是一名优秀的程序员,十分优秀!