c++ - 获得相对于不同矩阵的翻译
问题描述
我有一个 AR 应用程序和两个摄像头识别的跟踪器。我有一个对象出现在每个对象上,它们的位置是通过转换它们的矩阵(矩阵 * trackerMatrix)来设置的。跟踪器位置变换在技术上是相对于相机的。
我想要做的是在场景中有跟踪器 A,引入跟踪器 B,跟踪器 B 上出现一个对象,然后将对象的位置更改为相对于跟踪器 A,以便跟踪器 B 可以离开场景。
我最初认为我可以制作一个向量,目标位置,然后用跟踪器 A 替换对象位置,减去向量。但我一定是错的,因为无论我如何扭曲它都不起作用。
解决方案
假设对象位置最初由 描述worldToCamera * cameraToTrackerB * objectPositionRelativeToTrackerB
,则可以得到对象相对于 trackerA 的位置为currentObjectPositionRelativeToTrackerA = inv(cameraToTrackerA) * cameraToTrackerB * objectPositionRelativeToTrackerB
。
推荐阅读
- swift - 致命错误:在使用 API 数据展开可选值时意外发现 nil
- arrays - Scala:将字符串数组解析为案例类
- ionic-framework - Ionic 3:在应用更新时将数据从 localStorage 迁移到 indexedDB
- php - 值未保存在数据库中
- ios - RxSwift 驱动程序 - 无效的 UITableView 单元格框架和背景视图的问题
- css - 仅对背景产生模糊效果
- python - 如何使用 Selenium + Python 加载动态内容
- sql - oracle如何替换字符串的前三个字符
- python-3.x - 在 Ubuntu16.04 中安装 python3-pip 的损坏包
- c# - 使用 C# 将行添加到 word doc