繁体   English   中英

正交空间中的 glm 旋转

[英]glm rotation in ortho space

我这样设置我的正射投影:

transform = glm::ortho(0.0f, width, height, 0.0f);

这很好用,但是当我想像这样使用glm::rotate function 时:

transform = glm::rotate(transform, glm::radians(45.0f), glm::vec3(0, 0, 1));

我的 object 围绕 0:0:0 旋转。

我的顶点看起来像这样:

GLfloat vertices[] = {
    600, 100, 0,
    612, 100, 0,
    612, 130, 0,
    600, 130, 0
};

如何让我的 object 围绕其中心旋转?

如果你想围绕它的中心旋转,你必须:

  • 平移 object,使 object 的中心移动到 (0, 0)。
  • 旋转 object。
  • 移动object,使中心点移动到原来的position。
GLfloat center_x = 606.0f;
GLfloat center_y = 115.0f;

transform = glm::translate(transform, glm::vec3(center_x, center_y, 0));
transform = glm::rotate(transform, glm::radians(45.0f), glm::vec3(0, 0, 1));
transform = glm::translate(transform, glm::vec3(-center_x, -center_y, 0));

另请参阅如何在转换中使用 Pivot 点

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM