glm transform矩阵小坑

稍稍记录一下踩过的小坑, 一般对一个物体进行变换, 应该是先缩放, 再旋转, 最后才平移. 而利用glm库计算transform矩阵的时候, 应该注意代码顺序要与变换顺序相反, 如:

transformMatrix = glm::translate(transformMatrix, glm::vec3((p1.x+p2.x)/2, (p1.y+p2.y)/2, (p1.z+p2.z)/2));
transformMatrix = glm::rotate(transformMatrix, rotateTheta, rotateAxis);
transformMatrix = glm::scale(transformMatrix, glm::vec3(1.0, radius / 2.0, 1.0));

猜想这是由于glm内部是将新的变换矩阵右乘原来的变换矩阵导致的额……

计算向量之间的旋转


前几天在咪咕工作时碰到了这样一个问题: 绘制圆柱体时圆柱体默认朝向z轴正向(屏幕外), 现在需要将其转至任意方向, 以此绘制任意方向上的圆柱体, 本来以为这个问题很简单, 但居然也困了我两个小时, 作为数学系的学生来说真是羞耻QAQ

继续阅读计算向量之间的旋转

使用文件硬链接解决重复复制移动的问题

最近在研究蓝噪声功率谱图的绘制, 作者是用Java+Matlab进行混合编程的. 每一次改动Java代码以后都需要将.java文件产生的.class文件复制到Matlab工作目录下, 这其实有点繁琐, 于是想到了利用文件的硬链接来减少这些重复繁琐的操作.

继续阅读使用文件硬链接解决重复复制移动的问题