实验一 简单图元的绘制
#define GLUT_DISABLE_ATEXIT_HACK
#include <glut.h>
void myDisplay(void)
{
glClearColor(0.0, 0.0, 0.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_TRIANGLES);
glColor3f(1.0f, 0.0f, 0.0f); glVertex2f(0.0f, 1.0f);
glColor3f(0.0f, 1.0f, 0.0f); glVertex2f(0.8f, -0.5f);
glColor3f(0.0f, 0.0f, 1.0f); glVertex2f(-0.8f, -0.5f);
glEnd();
glColor3f(1.0f, 1.0f, 1.0f);
glRectf(-0.5f, -0.5f, 0.5f, 0.5f);
glPointSize(100);
glBegin(GL_POINTS);
glColor3f(1.0f, 0.0f, 0.0f); glVertex2f(-0.4f, -0.4f);
glColor3f(0.0f, 1.0f, 0.0f); glVertex2f(0.0f, 0.0f);
glColor3f(0.0f, 0.0f, 1.0f); glVertex2f(0.4f, 0.4f);
glEnd();
glColor3f(0.0f,0.0f, 0.0f);
const char* str = "sdfdqwer";
int n = 6;
glRasterPos2i(0, 0);
for (int i = 0; i < n; i++)
{
glutBitmapCharacter(GLUT_BITMAP_8_BY_13, *(str + i));
}
glFlush();
}
void myreshape(GLint w, GLint h) {
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-10, 10, -10, 10, -1.0, 1.0);
}
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(748, 415);
glutInitWindowSize(500, 500);
glutCreateWindow("Hello World!");
glutDisplayFunc(&myDisplay);
glutMainLoop();
return 0;
}
结果:
