OpenGL交互方式Trackball的代码
发布时间
阅读量:
阅读量
Trackball技术通过将屏幕中检测到的鼠标坐标映射至球体表面,从而识别出旋转轴线及相应的旋转角度。通过以下代码可以更清晰地理解其原理;
首先需要声明若干全局变量:
//camera transform variables
int state = 0, oldX=0, oldY=0;
float r_angle=0, dist = -2;
glm::vec3 r_axis_local=glm::vec3(1.0f, 0.0f, 0.0f);
glm::mat4 Tr;
glm::mat4 R=glm::mat4(1.0);
glm::mat4 MV,P,MVP;
将鼠标坐标值转换至区间(-1.0,1.0)之内
glm::vec2 scaleMouse(glm::vec2 coords, glm::vec2 viewport) {
return glm::vec2( static_cast<float>(coords.x*2.f) / static_cast<float>(viewport.x) - 1.f,
1.f - static_cast<float>
全部评论 (0)
还没有任何评论哟~
