【问题标题】:can't draw my rectangle where I want on the screen无法在屏幕上我想要的位置绘制我的矩形
【发布时间】:2014-04-05 01:06:53
【问题描述】:

我需要绘制矩形的外壳/备用。

但问题是glTranslated()不起作用。当我调用它时,我的矩形不再绘制了。

我的矩形:glRectf(-0.032f, 0.032f, 0.032f, -0.032f);

(我不懂价值观,但工作)

完整代码:

{
  glClear(GL_COLOR_BUFFER_BIT);
  glMatrixMode(GL_MODELVIEW);
  glLoadIdentity();

  glColor3ub(254,128,1);

  //glTranslated(50, 20, 0); when I remove the comment, my rectangle doesn't appear.                                                                                                                                             
  glRectf(-0.032f, 0.032f, 0.032f, -0.032f);

  glFlush();
  SDL_GL_SwapBuffers();
}

【问题讨论】:

  • 您的代码不完整;特别是,它似乎缺少一个main() 函数和至少一个#include。请edit您的代码,这是您问题的minimal reproducible example(包括任何必要的输入,但最好不需要任何输入),然后我们可以尝试重现并解决它。您还应该阅读How to Ask。

标签: c++ opengl sdl 2d-games


【解决方案1】:

glRectf(x1,y1,x2,y2) 表示从点 (-0.032,0.032) 到对角点 (0.032,-0.032) 处绘制一个矩形。

glTranslated(50,20,0) 正在应用一个向量来移动它。这些是相当大的数字,因为您说您可以看到大小为 0.064 宽的矩形(正方形)。它可能会从您的视口中绘制出来,因此您看不到它。 尝试一些小数字,而且 glTranslated 需要双打(所以我也会施放它们)。

在这里阅读更多... http://www.cprogramming.com/tutorial/opengl_first_opengl_program.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-28
    • 2017-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多