Posts Tagged ‘C++’
网上有很多“绕任意轴的旋转矩阵”的文章,不过要么限定了所谓“任意轴”必须经过原点,要么只有推导没有结论。最近在完成图形学作业的时候正好用到了这个算法,通过Google娘找到了一篇名叫Glenn Murray的老外的文章,于是直接拿来用了。以下直接放结论,详细推导过程可以参考原文[1]。
算法的输入参数分别是旋转轴上的任意一点P(a,b,c),单位化后的旋转轴方向向量V(u,v,w),旋转角度θ。
编译期计算的好处人人皆知,但是实现一些复杂的运算还是需要一点技巧的。总结来说,如果计算能够写成迭代的形式,即f(n) = f(n-1) op N, 其中op为某种常规运算操作符,N为编译期常数,而且操作数皆为整数(C++暂不支持浮点数作为模板参数),则可以利用模板类(template class)的技术来实现编译期计算。