好的,我已经阅读了几个小时,并成功使用以下矩阵计算使鼠标拖动在x轴上工作,但在y轴上没有成功: 其中 newX = 新的鼠标X坐标 previousX = 上次更新时的鼠标X坐标 position = 相机位置 mvMatrix = 模型视图矩阵或'世界矩阵'
angle = 0.01*(newX-previousX);
rM = mat4.create();
mat4.identity(rM);
rM[0] = Math.cos(angle);
rM[2] = Math.sin(angle);
rM[8] = -Math.sin(angle);
rM[10] = Math.cos(angle);
mat4.multiplyVec3(
rM,
position,
position
)
*注意,这里使用了glMatrix库(http://code.google.com/p/glmatrix/)
同时为了始终面向位置0,0,0
mat4.lookAt(
position,
vec3.create([0, 0, 0]),
vec3.create([position[0], position[1]+1, position[2]]),
mvMatrix
);
我从http://en.wikipedia.org/wiki/Rotation_matrix获取了矩阵。 我使用了“基本旋转”和Ry下的矩阵。 我相信这已经被做过了,任何帮助将不胜感激。 谢谢,Josh