如何解决用 glm 和 glfw 旋转相机
我有以下代码:
void mouseCallback(GLFWwindow* window,double xpos,double ypos)
{
if (glfwGetMouseButton(window,GLFW_MOUSE_BUTTON_LEFT) == GLFW_PRESS)
{
const float radius = std::sqrt(std::pow(camX,2) +
std::pow(camY,2) + std::pow(camZ,2));
camX = (cos(ypos) + sin(ypos)) * radius;
camY = (sin(xpos) + cos(ypos)) * radius;
camZ = (cos(ypos) + sin(xpos)) * radius;
}
}
这段代码很自然地旋转了我的相机,但我找不到我要找的东西。所以让我描述一下我想做什么:
如果我移动鼠标,我想旋转相机,半径是我的相机和我的模型之间的距离(模型自然在 (0,0))。
view = glm::lookAt(glm::vec3(camX,camY,camZ),glm::vec3(0.0f,0.0f,5.0f) + cameraFront,1.0f,0.0f));
cameraFront
用于翻译并且它有效。
有人可以帮我吗?
谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。