您的位置:首页 > 产品设计 > UI/UE

Rodrigues' Rotation Matrix(罗德里格旋转矩阵)

2012-03-15 23:38 701 查看
使用蒙特卡洛方法做半球面采样时遇到有这样的一个问题:默认产生的采样向量组所在的半球面是Y轴(或其它轴)所对应的方向,但是在使用时可能就需要根据法向量对其进行变换,于是就有了这样一个问题,给定两个向量V0V1 计算出一旋转矩阵R得到:

R V0 =V1

这个问题其实蛮简单,可以直接用两个向量的点积与叉乘计算出对应的夹角与旋转轴,然后组合出旋转矩阵即可(http://en.wikipedia.org/wiki/Rotation_matrix)。不过搜了下发现了另外一种方法:Rodrigues Rotation matrix(罗德里格旋转矩阵),虽然这种方法可能并没有速度上的优势,但之前却没什么了解(没准儿也学过,但干脆地忘了^_^)。其关于R的计算如下:



其中的I是一个单位阵,r其实也就是由两个向量叉乘得到的单位旋转向量,而Theta也就是两个向量之间的夹角。它还有的其它一些属性可以参考:http://en.wikipedia.org/wiki/Rodrigues'_rotation_formula
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: