3d - 点云围绕任意轴的 3D 旋转
问题描述
我试图弄清楚点云围绕任意轴的 3d 旋转。我真的很接近理解它背后的整个数学,但还没有。
下面根据https://sites.google.com/site/glennmurray/Home/rotation-matrices-and-formulas/rotation-about-an-arbitrary-axis-in-3-dimensions
定义步骤(1)平移空间使旋转轴通过原点。
(2) 围绕 z 轴旋转空间,使旋转轴位于 xz 平面内。
(3) 围绕 y 轴旋转空间,使旋转轴位于 z 轴上。
(4) 围绕 z 轴执行所需的 θ 旋转。
(5) 应用步骤 (3) 的逆操作。
(6) 应用步骤 (2) 的逆操作。
(7) 应用步骤 (1) 的逆操作。
我应该对云中的所有点逐一应用这些步骤,还是应该为云中的点找到一个中心然后应用?还是两者都会给出相同的结果?
如果我从任意轴绘制一个向量到质心并应用上述步骤来找到变换矩阵,然后将所有点与该矩阵相乘,我会做对吗?
我认为的另一种方法是为每个点绘制矢量并为每个单独的点应用步骤。我猜这将导致每个点都有不同的转换矩阵。
我正在尝试将它们集成到 PCL C++ 中。
解决方案
推荐阅读
- lua - PANIC:调用 Lua API 时出现不受保护的错误(init.lua:116:尝试调用字段“警报”(零值))
- php - PHP 相当于一个 Node 加密函数
- javascript - HTML 与 Java Script 链接有问题
- python-3.x - 如何在目录中的多个文件上运行 Python 程序?
- android - 使用 ProviderTestRule 测试 DocumentProvider
- c - ATMEGA32U4 PWM 问题
- python - 在 scikit-optimize 中使用 KerasRegressor 的示例
- python - 如何使用 DJANGO 上的 POST 请求将默认数据保存在其他字段中?
- android - 在哪里可以找到 android Espresso 库的开源代码
- maximo - Maximo- 通过传递 wonum 和 siteid 而不是 workorderid 使用 RESTApi 更新工作订单