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

glLineStipple (1 $FOFO);glEnable (GL_LINE_STIPPLE);

У функції glLinestipple перший аргумент - масштабний множник, другий аргумент задає шаблон штрихування (побітовим способом). За допомогою програмного середовища Delphiдуже легко можна побудувати - ще один приклад на використання штрихування (мал. 2. 1).


Мал. 2.1. Декілька готових шаблонів штрихових ліній

Призначена для користувача процедура drawOneLine викликається для відтворення кожного окремого відрізка:

procedure TfrmGL. drawOneLine(xl, yl x2, y2: GLfloat);

begin glBegin(GL_LINES);

glVertex2f glVertex2f glEnd;

end;

(2 * xl / ClientWidth - 1. 0, yl (2 * x2 / ClientWidth - 1. 0 y2

/ ClientHeight - 0. 5); / ClientHeight - 0. 5);

Змістовна частина коду перемальовування вікна виглядає так:

glColor3f (1. 0, 1. 0, 1. 0); // всі відрізки малюються білим

// другий рядок: малюється 3 відрізки, все з різним штрихуванням

glEnable (GL_LINE_STIPPLE);

glLineStipple (1, $0101); // точковий

drawOneLine (50. 0, 125. 0, 150. 0, 125. 0);

glLineStipple (1 $OOFF); // штрихи

drawOneLine (150. 0, 125. 0, 250. 0, 125. 0);

glLineStipple (1 $1C47); // штріхпунктір

drawOneLine (250. 0, 125. 0, 350. 0, 125. 0);// третій рядок: малюється три широкі відрізки з тим же штрихуванням

glLineWidth (5. 0); // задаємо ширину лінії

glLineStipple (1, $0101);

drawOneLine (50. 0, 100. 0, 150. 0, 100. 0);

glLineStipple (1 $00FF);

drawOneLine (150. 0, 100. 0, 250. 0, 100. 0);

glLineStipple (1 $1C47);

drawOneLine (250. 0, 100. 0, 350. 0, 100. 0);

glLineWidth (1. 0);// в першому рядку малюється 6 відрізків, шаблон "пунктир/точка/пунктир", // як частини одного довгого відрізка, без виклику процедури

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