Контрольная работа: Методи поліпшення растрових зображень

glBegin (GL_LINE_STRIP);

for i: = 0 to 6 do

glVertex2f ( 2 * (50. 0 + (i * 50. 0)) / ClientWidth - 1. 0, 75. 0 / ClientHeight);

glEnd;// Четвертий рядок - аналогічний результат, але 6 отдельньк відрізків for i: = 0 to 5 do

drawOneLine (50. 0 + i * 50. 0, 50. 0, 50. 0 + (i+l) * 50. 0, 50. 0); // п'ятий рядок - малюється один штрихпунктирний відрізок, множник = 5 glLineStipple (5 $1С47);

drawOneLine (50.0, 25.0, 350.0, 25.0);

Після виконання побудови такого алгоритму ми отримаємо з ліній картинку, що буду нагадувати бенгальський вогник.

glEnable (GL_LINE_STIPPLE) ;

For i := 1 to 100 do begin

glColor3f (random, random, random);

glLineStipple (random (5), random ($FFFF) ) ;

glBegin (GL_LINES);

glVertex2f (xpos, ypos) ;

glVertex2f (xpos + 0.5 * random * sin (random (360)),

ypos + 0.5 * random * cos (random (360)));

glEnd; end;

2. Параметри виду, буфер глибини, джерело світла в бібліотеці Opengl

Щоб зрозуміти, що таке параметри виду нам допоможе один з примірив посібника бібліотек OpenGL. Почнемо подальше вивчення з того, що збільшимо об'єм куба. Проект з підкаталогу ExOl нам допоможе. Основна послідовність дій поміщена між командами giPushMatrix і glPopMatrix. Якщо цього не робити, то при кожному перемальовуванні вікна, наприклад, при зміні його розмірів, сцена зменшуватиметься в розмірах. Тут зустрічається нова для нас команда - giFrustum, задаюча параметри вигляду, зокрема, визначальні область відтворення в просторі. Все, що виходить за межі цієї області, відсікатиметься при відтворенні. Перші два аргументи задають координати площин відсікання зліва і справа, третій і четвертий параметри визначають координати площин відсікання знизу і зверху. Останні аргументи задають відстані до ближньої і дальньої площин відсікання, значення цих двох параметрів повинні бути позитивними - це не координати площин, а відстані від ока спостерігача до площин відсікання.

wglMakeCurrent(Canvas.Handle, hrc);

glViewport(0, 0, ClientWidth, ClientHeight);

9lPushMatrix;

glFrustum (-1, 1, -1, 1, 3, 10); // задаем перспективу\

glTranslatef(0.0, 0.0, -5.0); // перенос объекта по оси 1\

9lClearColor (0.5, 0.5, 0.75, 1.0); \

glClear (GL_COLOR_BUFFER_BIT) ; \

glColor3f (1.0, 0.0, 0.5); \

glBegin (GLJTRIANGLES);\

glVertex3f (-1, -1, 0);\

glVertex3f (-1, 1, 0) ;\

К-во Просмотров: 378
Бесплатно скачать Контрольная работа: Методи поліпшення растрових зображень