【问题标题】:Rotate a square in OpenGl在OpenGL中旋转一个正方形
【发布时间】:2019-09-30 12:28:08
【问题描述】:

我正在尝试绘制一个中间有一条线的正方形。所以本质上它是两个不同颜色的三角形组合成一个正方形。我将如何将这个正方形旋转 90 度?

 void Square(float xPos, float yPos, float length){
    glBegin(GL_POLYGON);
       glColor3d(1,1,1);
       glVertex2d(xPos + length, yPos);
       glVertex2d(xPos, yPos);
       glVertex2d(xPos , yPos + length);
       glColor3d(0,0,0);
       glVertex2d(xPos + length, yPos + length);
    glEnd();
}

我曾尝试在此函数中使用 glRotatef() 将其旋转 90 度,但每次它仍然会给我相同的正方形。

【问题讨论】:

  • 我的意思是……如果你将一个正方形旋转 90 度,它仍然是一个正方形。
  • mathworld.wolfram.com/TruchetTiling.html。我的正方形有一个实心三角形,旋转后看起来会有所不同。希望这有助于更好地解释我正在尝试做的事情。
  • 我在你的函数中没有看到任何glRotatef。请展示你的尝试,不要只是描述它。除此之外,你真的不应该使用传统的 OpenGL。
  • 旧版 OpenGL 非常适合此目的。

标签: c++ opengl opengl-compat


【解决方案1】:

你应该可以像这样旋转它:

glPushMatrix();
  glRotatef(90.0f, 0, 0, 1);
  glBegin(GL_POLYGON);
    ...
  glEnd();
glPopMatrix();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-21
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    • 2012-03-09
    • 1970-01-01
    相关资源
    最近更新 更多