Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
/
ЗВІТ
До лабораторної роботи №4
З курсу :”Комп’ютерна графіка”
На тему:
“ ПОБУДОВА РУХОМИХ ЗОБРАЖЕНЬ”
Львів 2014
Мета роботи - набути практичних навиків в складанні програм для побудови рухомих зображень на екрані комп’ютера за допомогою матричних перетворень.
ЗАВДАННЯ
/
Блок-схема:
/
СПИСОК ФУНКЦІЙ ВИКОРИСТАНИХ В ПРОГРАМІ
glClearColor- встановлює колір, яким буде заповнений буфер кадра.
glColor3f(0.0,0.0,0.0)- встановлює колір, яким буде малюватися лінії.
glBegin(GL_QUADS), glEnd()- початок і кінець фігури.
glVertex2f(Х,У)- координати точок.
glutSwapBuffers()- подвійний буфер глибини.
void Initialize()- функція яка ініціалізує зображення.
void Timer(int)- функція часу яка виконує переміщення об’єкту.
void Draw()- функція малювання.
glutDisplayFunc(Draw)- функція виводу зображення на екран.
glutCreateWindow("I_Pro")- функція що показує заголовок програми.
glutInitWindowPosition(100,200)- функція що вказує початкову координату.
ТЕКСТ ПРОГРАМИ:
#include "stdafx.h"
#include <gl\glut.h>
#include <math.h>
float WinWid=550.0;
float WinHei=600.0;
float dx=0.0;
float dy=0.0;
float i=0;
void Draw()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0,0.0,0.0);
glBegin(GL_QUADS);
glVertex2f(300+dx,300+dy);
glVertex2f(300+dx,318+dy);
glVertex2f(318+dx,318+dy);
glVertex2f(318+dx,300+dy);
glEnd();
glutSwapBuffers();
}
void Initialize()
{
glClearColor(1.0,1.0,1.0,1.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0,WinWid,0,WinHei,-200.0,200.0);
glMatrixMode(GL_MODELVIEW);
}
void Timer(int)
{ i--;
dy+=10 * cosf(2.0 * 3.1415926 * float(i) / 30);
dx+=10 * sinf(2.0 * 3.1415926 * float(i) / 30);
Draw();
glutTimerFunc(50,Timer,0);
}
int main(int argc,char** argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
glutInitWindowSize(WinWid,WinHei);
glutInitWindowPosition(100,200);
glutCreateWindow("I_Pro");
//reg
glutDisplayFunc(Draw);
glutTimerFunc(50,Timer,0);
Initialize();
glutMainLoop();
return 0;
}
Результат програми
/