我在C++中关注OpenGL的xoax.net教程,并且我坚持使用for循环在美国国旗中绘制条纹。我只是得到一个蓝色屏幕(因为我将背景色设置为蓝色)。下面是“DrawStripes”函数的代码:在OpenGL中绘制条纹(C++)
void DrawStripes() {
for (int x = 0; x < 13; ++x) {
if (x % 2 == 0) {
glColor3f(204/255, 0, 0);
} else {
glColor3f(1, 1, 1);
}
float fStartX = 0;
float fEndX = 1;
float fStartY = x * (1/13);
float fEndY = (x + 1) * (1/13);
if (x > 5) {
fStartX = .76/1.9;
}
glBegin(GL_QUADS);
glVertex3f(fStartX, fStartY, 0);
glVertex3f(fEndX, fStartY, 0);
glVertex3f(fEndX, fEndY, 0);
glVertex3f(fStartX, fEndY, 0);
glEnd();
}
}
(我已经把这个功能在“画”功能,所以它不只是我不告诉它使用的功能) 任何想法?
--- --- EDIT 这里是 '绘制' 和 '初始化' 的功能:
void Draw() {
glClear(GL_COLOR_BUFFER_BIT);
DrawStripes();
glFlush();
}
void Initialize() {
glClearColor(0.0, 0.0, 0.5, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}
什么问题?你用这段代码得到了什么样的结果? – olevegard 2013-05-12 20:36:04
正如我在问题中所说,我只是得到一个蓝色屏幕(因为我将背景颜色设置为蓝色) – Dan299 2013-05-12 20:38:28
发布更多代码。你如何设置模型视图投影矩阵? – 2013-05-12 20:40:42