[英]OpenGL C++ Making Triangle
我试图制作一个三角形,如果右键单击它会更改其颜色,但是我的代码无法正常工作。 我正在使用Codeblocks OpenGL GLUT Project。 如果我将GLUT)GB值更改为0,则不会显示输出
#include<glut.h>
#include<gl/gl.h>
#include<gl/glu.h>
#define RED 1
#define GREEN 2
#define BLUE 3
#define GLUT_RGBA 1
// i have made changed in RGB and RGBA by changing it's value 0 or 1 but no //output
#define GLUT_DOUBLE 2
#define GLUT_DEPTH 16
// also changed these two values but still no
float angle =0.0;
float red = 1.0, blue =1.0, green=1.0;
void renderScene(void) {
glClear(GL_COLOR_BUFFER_BIT/GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glRotatef(angle,0.0,1.0,0.0);
glColor3f(red,green,blue);
glBegin(GL_TRIANGLES);
glVertex3f(-0.5,-0.5,0.0);
glVertex3f(0.5,0.0,0.0);
glVertex3f(0.0,0.5,0);
glEnd();
angle++;
glutSwapBuffers();
}
void ProcessMenuEvents(int options){
switch (options){
case RED:
red =1.0; green=0.0 ; blue=0.0;
break;
case GREEN:
red =0.0; green=1.0 ; blue=0.0;
break;
case BLUE:
red =0.0; green=0.0 ; blue=1.0;
break;
}
}
int main(int argc, char **argv){
glutInit(&argc,argv);
//glutInitDisplayMode(GLUT_DEPTH/GLUT_DOUBLE/1.0);
glutInitDisplayMode(GLUT_DEPTH/GLUT_DOUBLE/GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(320,320);
glutCreateWindow("GHJYUGH");
glutDisplayFunc(renderScene);
glutIdleFunc(renderScene);
glutCreateMenu(ProcessMenuEvents);
glutAddMenuEntry("red",RED);
glutAddMenuEntry("green",GREEN);
glutAddMenuEntry("blue",BLUE);
glutAttachMenu(GLUT_RIGHT_BUTTON);
glutMainLoop();
}
该错误是由于顶点角度导致的此问题所致,程序给出了一些顶点错误
void renderScene(void) {
glClear(GL_COLOR_BUFFER_BIT/GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glRotatef(angle,0.0,1.0,0.0);
glColor3f(red,green,blue);
glBegin(GL_TRIANGLES);
glVertex3f(-0.5,-0.5,0.0);
glVertex3f(0.5,0.0,0.0);
glVertex3f(0.0,0.5,0);
glEnd();
angle++;
glutSwapBuffers();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.