使用向量点积来实现将模型绕着中心点旋转
如何在三维空间中实现模型绕着中心点旋转?这个问题听起来容易,但是经过我的实践,发现其实还是挺困难的。在研究OpenGL和DirectX的初级阶段,我相信这个问题还是挺伤大家的脑筋的。究竟该如何实现这样的功能呢?我想大家可能需要回过头,复习一下我们高中的知识,通过平面解析几何的类比,大家会找到好方法的。
这里要追溯到我们高中所学的向量和平面解析几何的知识。话说向量a是一个普通的向量,向量b是a相对于中心顺时针旋转α角形成的。已知向量a和b,求α。
方法很简单,首先将这个图片平移,如下:
这里我们可以利用向量的点阵公式,a·b = |a||b|cosα,算出α= arccos(a·