#pragma comment(linker, "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")
#include <GL/freeglut/freeglut.h>
#define WIDTH 320
#define HEIGHT 240
float anglex=0.0f;
float angley=0.0f;
float anglez=0.0f;
void DrawTriangle()
{
glBegin(GL_TRIANGLES);
glColor4f(1.0, 0.0, 0.0, 1.0f);
glVertex3f(50 , 30, 0);
glColor4f(0.0, 1.0, 0.0, 1.0f);
glVertex3f(10 , 100, 0);
glColor4f(0.0, 0.0, 1.0, 1.0f);
glVertex3f(90 , 100, 0);
glEnd();
}
void DrawQuadrangle()
{
glBegin(GL_QUADS);
glColor4f(1.0, 1.0, 0.0, 1.0f);
glVertex3f(100 , 180, 0);
glColor4f(1.0, 1.0, 1.0, 1.0f);
glVertex3f(200 , 180, 0);
glColor4f(0.0, 1.0, 1.0, 1.0f);
glVertex3f(200 , 220, 0);
glColor4f(0.0, 0.0, 0.0, 1.0f);
glVertex3f(100 , 220, 0);
glEnd();
}
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glRotated(angley, 0.0, 1.0, 0.0);
glRotated(anglex, 1.0, 0.0, 0.0);
glRotated(anglez, 0.0, 0.0, 1.0);
glOrtho(0.0, WIDTH, HEIGHT, 0.0, -1.0, 1.0);
DrawTriangle();
DrawQuadrangle();
glutSwapBuffers();
}
void idle(void)
{
angley+=0.05f;
anglex+=0.0025f;
anglez+=0.03f;
Sleep(1);
glutPostRedisplay();
}
void Init(){
glClearColor(0.3, 0.3, 0.3, 1.0);
glOrtho(0, WIDTH, HEIGHT, 0, -1, 1);
}
int main(int argc, char *argv[])
{
glutInitWindowPosition(100, 100);
glutInitWindowSize(WIDTH, HEIGHT);
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE);
glutCreateWindow("板ポリゴンを表示");
glutDisplayFunc(display);
glutIdleFunc(idle);
Init();
glutMainLoop();
return 0;
}
|