Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лаба10

.cpp
Скачиваний:
0
Добавлен:
08.10.2015
Размер:
1.63 Кб
Скачать
#include "stdafx.h"
#include <glut.h> 

//Зміна розмірів вікна
void reshape(int w, int h)
{
	glViewport(0, 0, (GLsizei)w, (GLsizei)h);
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	gluPerspective(60.0, (GLfloat)w / (GLfloat)h, 1.0, 10.0);
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
	gluLookAt(0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0);
}
//Відображення
void display(void)
{
	GLUquadricObj *quadObj;
	quadObj = gluNewQuadric();
	glClear(GL_COLOR_BUFFER_BIT);
	glColor3f(0.0, 0.0, 0.0);
	glPushMatrix();
	glTranslated(-0.5, 0, 0);
	glRotated(100, -1, 0, 0);
	glTranslated(0.5, 0, 0);
	glColor3d(1, 0, 1);
	gluQuadricDrawStyle(quadObj, GLU_LINE);
	gluCylinder(quadObj, 1, 0.5, 2, 15, 16); // 1-нижній радіус 0,5-верхній 2-висота 15-округлість 16-к-сть сегментів
	glPopMatrix();
	glutSwapBuffers();
}
//Клавіатура
void keyboardMove(unsigned char key, int x, int y)
{
	switch (key)
	{
	case 'w':
		glTranslatef(0.0, 0.1, 0.0);
		glutPostRedisplay();
		break;
	case 's':
		glTranslatef(0.0, -0.1, 0.0);
		glutPostRedisplay();
		break;
	case 'a':
		glTranslatef(-0.1, 0.0, 0.0);
		glutPostRedisplay();
		break;
	case 'd':
		glTranslatef(0.1, 0.0, 0.0);
		glutPostRedisplay();
		break;
	default:
		break;
	}
}
//точка входу
int main(int argc, char **argv)
{
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
	glutInitWindowSize(1280, 720);
	glutInitWindowPosition(0, 0);
	glutCreateWindow("laba 10");
	glutDisplayFunc(display);
	glutReshapeFunc(reshape);
	glutKeyboardFunc(keyboardMove);
	glutMainLoop();//головний цикл
	return 0;
}
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]