Студопедия — Пример рисования на поверхности визуального компонента.
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Пример рисования на поверхности визуального компонента.






(пример 10, часть 2).

{**********************************************************************}

program Dots;

uses

Forms,

Unit1 in 'Unit1.pas' {frmGL};

{$R *.RES}

begin

Application.Initialize;

Application.CreateForm(TfrmGL, frmGL);

Application.Run;

end.

 

{**********************************************************************}

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

OpenGL;

type

TfrmGL = class(TForm)

procedure FormCreate(Sender: TObject);

procedure FormPaint(Sender: TObject);

procedure FormDestroy(Sender: TObject);

private

hrc: HGLRC;

end;

var

frmGL: TfrmGL;

 

implementation

{$R *.DFM}

{==========================================Перерисовка окна}

procedure TfrmGL.FormPaint(Sender: TObject);

begin

wglMakeCurrent(Canvas.Handle, hrc);

glViewPort (0, 0, ClientWidth, ClientHeight); // область вывода

glClearColor (0.5, 0.5, 0.75, 1.0); // цвет фона

glClear (GL_COLOR_BUFFER_BIT); // очистка буфера цвета

glPointSize (20); // размер точек

glColor3f (1.0, 0.0, 0.5); // текущий цвет примитивов

glBegin (GL_POINTS); // открываем командную скобку

glVertex2f (-1, -1);

glVertex2f (-1, 1);

glVertex2f (0, 0);

glVertex2f (1, -1);

glVertex2f (1, 1);

glEnd; // закрываем командную скобку

SwapBuffers(Canvas.Handle); // содержимое буфера - на экран

wglMakeCurrent(0, 0);

Canvas.Brush.Color:= clGreen;

Canvas.Ellipse (10, 10, 50, 50);

end;

{==============================================Формат пикселя}

procedure SetDCPixelFormat (hdc: HDC);

var

pfd: TPixelFormatDescriptor;

nPixelFormat: Integer;

begin

FillChar (pfd, SizeOf (pfd), 0);

pfd.dwFlags:= PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or PFD_DOUBLEBUFFER;

nPixelFormat:= ChoosePixelFormat (hdc, @pfd);

SetPixelFormat (hdc, nPixelFormat, @pfd);

end;

{=============================================Создание формы}

procedure TfrmGL.FormCreate(Sender: TObject);

begin

SetDCPixelFormat(Canvas.Handle);

hrc:= wglCreateContext(Canvas.Handle);

end;

{=================================Завершение работы приложения}

procedure TfrmGL.FormDestroy(Sender: TObject);

begin

wglDeleteContext(hrc);

end;

end.

{**********************************************************************}

 

Приложение 3. Ссылки на Интернет-ресурсы по использованию библиотек OpenGL в программировании графики.

http://www.opengl.org

http://gl.satel.ru

http://www.sgi.com/software/opengl

www.opengl.org.ru/ - Подборка материалов книг, документации, учебников. Примеры программ написанных с использованием OpenGL.

opengl.gamedev.ru/ - Программирование компьютерной графики средствами

OpenGL. Документация, статьи, советы.

www.codenet.ru/progr/opengl/ - Минимальная программа OpenGL. Введение в OpenGL.

nehe.gamedev.net/ - главная страница компании NeHe, учебники, ресурсы.

www.rsdn.ru/article/opengl/ogltut2.xml - Учебное пособие по OpenGL. www.citforum.ru/programming/opengl/index.shtml - книга Игоря Тарасова «OpenGL».
talk.mail.ru/forum/fido7.ru.opengl - Форумы@Mail.Ru:

Форум Стандаpт визуализации OpenGL.

pmg.org.ru/nehe/ - OpenGL - уроки от NeHe: переводы по OpenGL,

трехмерная графика, игры, мультимедия Translations Russian OpenGL.

www.firststeps.ru/mfc/opengl/opengl1.html - первые шаги в создании программы с OpenGL

www.bib.com.ua/cat_art28.html - руководство по написанию программ.

 

Библиографический список.

11. Боресков А. Графика трехмерной компьютерной игры на основе OpenGL. – М.: Диалог-МИФИ, 2005.

12. Гашников М. и др. Методы компьютерной обработки изображений. - М.: Физматлит, 2001.

13. Павлидис Т. Алгоритмы машинной графики и обработка изображений. - М.: Радио и связь. 1986.

14. Петров М. Компьютерная графика. Учебник для вузов. - СПб.: Питер, 2002.

15. Рейбоу В. Компьютерная графика. Энциклопедия. - СПб.: Питер, 2002.

16. Роджерс Д. Алгоритмические основы машинной графики. - М.: Мир, 1989.

17. Снижко Е. Компьютерная геометрия и графика: Конспект лекций. – СПб.: Изд. БГТУ, 2005.

18. Шикин Е., Боресков А. Компьютерная графика. Динамика, реалистические изображения. - М.: Диалог - Мифи, 1985.

19. Шикин Е., Боресков А. Компьютерная графика. Полигональные модели. – М.: Диалог-МИФИ, 2005.

20. Эйнджел Э. Интерактивная компьютерная графика. Вводный курс на базе OpenGl. - М.: Изд. Дом «Вильямс», 2001.

21. Херн Д., Бейкер М. Компьютерная графика и стандарт OpenGL. – М.: Изд. Дом «Вильямс», 2005.


Оглавление.

 

Предисловие.. 3

Лабораторная работа № 1. Подключение библиотек; контекст устройства, контекст воспроизведения; общий вид программы. 4

Цель работы. 4

Необходимые теоретические сведения. 4

Основные понятия, используемые в данной лабораторной работе: контекст устройства, контекст воспроизведения, формат пиксела. 5

Порядок выполнения работы. 5

Контрольные вопросы. 18

Лабораторная работа № 2. Примитивы OpenGL, основные приемы построения двумерных объектов. 18

Цель работы. 18

Необходимые теоретические сведения. 18

Командные скобки. Использование функций glBegin и glEnd. 19

Аргументы функции glBegin. 20

Включение и отключение режима сглаживания (антиэлайзинг). 20

Вывод точек в OpenGL. 21

Линии: одиночные, ломаные, замкнутые ломаные. 22

Вывод треугольников: одиночные треугольники, ленты треугольников, веера треугольников. 23

Вывод четырехугольников. 25

Рисование полигонов, передние и задние грани полигонов. 25

Построение невыпуклых полигонов. 26

Особенности режимов закрашивания для многоугольников. 27

Задания к лабораторной работе. 27

Варианты к заданию. 29

Дополнительные задания. 30

Контрольные вопросы. 30

Лабораторная работа № 3. Использование массивов вершин. Преобразования координат. 31

Цель работы: 31

Порядок выполнения лабораторной работы. 31

Необходимые теоретические сведения. 31

Массивы вершин. 31

Включение/выключение режима. 31

Заполнение массива вершин. 32

Команды рисования. 33

Геометрические преобразования. 33

Матрица моделирования. 34

Преобразование переноса: 34

Преобразование поворота: 34

Преобразование масштабирования: 35

Задания к лабораторной работе. 36

Варианты к заданиям. 37

Дополнительные задания. 37

Контрольные вопросы. 38

Лабораторная работа № 4. Трехмерные построения. Буфер глубины. Видовые параметры. Параллельная и перспективная проекции. 38

Цель работы. 38

Порядок выполнения работы. 38

Необходимые теоретические сведения. 39

Трехмерные координаты. 39

Буфер глубины. 39

Проекции. 40

Видовые параметры. 40

Место команд в программе. 41

Матрица проецирования. 42

Задания к лабораторной работе. 43

Варианты заданий. 44

Дополнительные задания. 45

Контрольные вопросы. 45

Лабораторная работа № 5. Квадрик-объекты. Камера. 46

Цель работы. 46

Порядок выполнения работы. 46

Необходимые теоретические сведения. 46

Квадрик-объекты. 47

Перспектива. 50

Моделирование камеры. 50

Задания к лабораторной работе. 51

Варианты к заданиям лабораторной работы. 52

Дополнительные задания. 53

Контрольные вопросы. 53

Лабораторная работа № 6. Освещение. 54

Цель работы. 54

Порядок выполнения работы. 54

Необходимые теоретические сведения. 54

Модель освещения. 55

Фоновый, диффузный, зеркальный и исходящий свет. 56

Цвет материала и света. 57

Включение фонового освещения. 59

Задание параметров материала. 59

Создание, позиционирование и включение одного или более источников света. 60

Параметры источника света. 62

Цвет. 63

Позиция и ослабление. 63

Задания лабораторной работе. 64

Варианты к заданию лабораторной работы. 65

Дополнительные задания. 65

Контрольные вопросы. 66

Лабораторная работа № 7. Текстуры: режимы фильтрации, режимы взаимодействия текстуры с накладываемым объектом, автоматическая генерация текстурных координат. 66

Цель работы. 66

Необходимые теоретические сведения. 66

Подготовка изображения для использования в текстуре. 67

Создание текстуры.. 68

Использование текстуры. 74

Пример наложения текстуры с растяжением на прямоугольный объект. 76

Пример наложения текстуры на треугольник. 76

Пример мозаичного(тайлового) покрытия текстурой. 77

Пример создания с помощь текстур эффекта отражения. 78

Задания к лабораторной работе и порядок выполнения. 78

Контрольные вопросы. 79

ПРИЛОЖЕНИЯ. 81

Приложение 1. Минимальный код программы OpenGL на C++. 81

Приложение 2. Минимальный код программы для использования OpenGL в программе на Delphi. 84

1) Оконное приложение. 84

2) Консольное приложение. 85

3) Пример рисования на поверхности визуального компонента. 88

Приложение 3. Ссылки на Интернет-ресурсы по использованию библиотек OpenGL в программировании графики. 89

Библиографический список. 90

 

 

 


[1] Лабораторные работы практикума могут выполняться в среде визуального программирования Delphi. В Приложении 2 содержатся варианты минимальной программы OpenGL на Delphi.

 

[2] В программе на C++ указатель записан в виде &pfd, в программе на Delphi следует записать @pfd.

[3] В Delphi вместо символа «|» используется «or».

[4] В Delphi шаблон запишется в виде, например $F0F0.

[5] В Delphi переменную-указатель на квадрик-объект объявляют так

quadricObj: GLUquadricObj;







Дата добавления: 2015-10-19; просмотров: 476. Нарушение авторских прав; Мы поможем в написании вашей работы!



Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

Принципы и методы управления в таможенных органах Под принципами управления понимаются идеи, правила, основные положения и нормы поведения, которыми руководствуются общие, частные и организационно-технологические принципы...

ПРОФЕССИОНАЛЬНОЕ САМОВОСПИТАНИЕ И САМООБРАЗОВАНИЕ ПЕДАГОГА Воспитывать сегодня подрастающее поколение на со­временном уровне требований общества нельзя без по­стоянного обновления и обогащения своего профессио­нального педагогического потенциала...

Эффективность управления. Общие понятия о сущности и критериях эффективности. Эффективность управления – это экономическая категория, отражающая вклад управленческой деятельности в конечный результат работы организации...

Этапы творческого процесса в изобразительной деятельности По мнению многих авторов, возникновение творческого начала в детской художественной практике носит такой же поэтапный характер, как и процесс творчества у мастеров искусства...

Тема 5. Анализ количественного и качественного состава персонала Персонал является одним из важнейших факторов в организации. Его состояние и эффективное использование прямо влияет на конечные результаты хозяйственной деятельности организации.

Билет №7 (1 вопрос) Язык как средство общения и форма существования национальной культуры. Русский литературный язык как нормированная и обработанная форма общенародного языка Важнейшая функция языка - коммуникативная функция, т.е. функция общения Язык представлен в двух своих разновидностях...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия