对点云进行刚体变换时如果同时绕三个坐标轴进行旋转会有问题
2015-11-01 12:47
239 查看
是这样的,初始时的数据里有点云的数据和相应的骨骼点的数据,初始时点云在空间直角坐标系中的位置是不确定的,但是骨骼点与点云是有映射关系的。
最终想要达到的效果是让人体点云在坐标系中站直站正。人体左方是x正方向,竖直方向是y正方向,人面朝z正方向。
开始的想法是这样,根据头部和两个脚踝(取平均值)的骨骼点坐标来确定分别应该绕x轴和z轴旋转多少角度。由两肩部的骨骼点坐标来确定应该绕y轴旋转多少角度。
开始的做法是先确定三个角度,然后调用之前写好的刚体变换的函数来更新点云的坐标。
应该是刚体变换的函数是按照绕xyz轴的顺序对点的坐标进行计算,所以当绕y轴旋转完之后,绕z轴旋转的角度就不准确了。
解决的方法是先计算出应该绕x和z旋转的角度,旋转。然后计算应该绕y轴旋转的角度,旋转。
最终想要达到的效果是让人体点云在坐标系中站直站正。人体左方是x正方向,竖直方向是y正方向,人面朝z正方向。
开始的想法是这样,根据头部和两个脚踝(取平均值)的骨骼点坐标来确定分别应该绕x轴和z轴旋转多少角度。由两肩部的骨骼点坐标来确定应该绕y轴旋转多少角度。
开始的做法是先确定三个角度,然后调用之前写好的刚体变换的函数来更新点云的坐标。
应该是刚体变换的函数是按照绕xyz轴的顺序对点的坐标进行计算,所以当绕y轴旋转完之后,绕z轴旋转的角度就不准确了。
解决的方法是先计算出应该绕x和z旋转的角度,旋转。然后计算应该绕y轴旋转的角度,旋转。
相关文章推荐
- d3d11 的学习记录
- thinkphp中data()的使用方法
- 写文本到txt文件的Sub过程
- (NO.00002)iOS游戏精灵战争雏形(三)
- (NO.00002)iOS游戏精灵战争雏形(三)
- (NO.00002)iOS游戏精灵战争雏形(三)
- Listview多tab上滑悬浮
- C语言文法
- ThinkPHP中data()方法的使用
- 正则表达式基础常识
- 软件缺陷管理基本流程
- 关于大学生生活费的一个问题,看完陷入沉思
- 如何扩大虚拟机硬盘容量大小
- MYSQL-复制
- 周赛一 1002 uu的水仙花
- cf C. The Big Race (简单模拟)
- 《外尔(H.Weyl):Symmetric》读书笔记(2015-10-22)
- OSI和TCP/IP
- 软件测试常见风险分析
- Testlink使用流程