原文链接:http://www.cnblogs.com/glshader/archive/2010/10/23/1858925.html
首先,我要感谢莱昂哈德·欧拉先生,他的智慧之光打破了时间的界限,在200多年后的今天依然照耀着我们.
许多图形学教科书在谈论2D旋转的时候,用一个表示旋转的矩阵来讲解旋转,例如:
这是一个表示旋转的矩阵,我们将一个2D向量乘以这个矩阵, 就能得到旋转θ角度的向量.
旋转后的向量x', y'就等于:
我从来没有真正明白,这个旋转矩阵是怎么计算得来的, 直到我找到欧拉的公式:
图中的圆表示”复数(complexnumber)平面”上的单位向量的集合.
这个公式被称作”欧拉公式”,i表示复数, e是自然对数, 运用这个公式,我们可以很容易的计算出2D空间中的旋转矩阵.
”实数平面”和”复数平面”之间并没有很大差别,唯一的不同是在”复数平面”中, y轴表示复数.
假设, 在”复数平面”上有这样的一个向量:
运用欧拉公式,我们可以将该向量转换为:
现在, 假设旋转β角度以后,新的向量为z':
我们来展开这个表达式:
所以,
从这里,我们就可以得到转换后的向量坐标:
由此, 我们就可以推出旋转矩阵.