专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 图形/图像

如何样旋转使得两个立方体对应的法向量平行且同向

发布时间:2011-06-27 20:38:54 文章来源:www.iduyao.cn 采编人员:星星草
怎么样旋转使得两个立方体对应的法向量平行且同向
在三维空间中有两个物体A,B,不一定是立方体,现在为了方便起见,视为立方体。

物体A有一个平面A', 对应的法向量是AA

物体B有一个平面B', 对应的法向量是BB.

现在我要旋转B, 使得法向量BB和法向量AA平行且同向。 

这个该如何实现? 不需要代码。 麻烦知道的告诉一下具体实现的数学公式。
比如物体B上有一个点 b(x1,y1,z1)。 旋转之后对应的点为b’

知道的指点一下哈,非常感谢





------解决方案--------------------
根据AA和BB向量可以计算出一个四元数,然后四元素转化成变换矩阵M[4*4]
 然后把齐次坐标b(x1, y1, z1, 1)乘以M即可
------解决方案--------------------
给你贴一段代码吧:
http://code.google.com/p/geometry/source/browse/trunk/geometry/include/gtl/quat.hpp
重点看这个函数: 
//! Construct a rotation which is the minimum rotation necessary to make vector \a rotate_from point in the direction of vector \a rotate_to.
void setValue(const Vec3<Type> & a_rotate_from, const Vec3<Type> & a_rotate_to)
通过两个向量 a_rotate_from和a_rotate_to构造一个四元素,通过四元素产生一个选择矩阵M4*4.
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: