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

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

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






(пример 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; просмотров: 488. Нарушение авторских прав; Мы поможем в написании вашей работы!



Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

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

Тема: Изучение приспособленности организмов к среде обитания Цель:выяснить механизм образования приспособлений к среде обитания и их относительный характер, сделать вывод о том, что приспособленность – результат действия естественного отбора...

Тема: Изучение фенотипов местных сортов растений Цель: расширить знания о задачах современной селекции. Оборудование:пакетики семян различных сортов томатов...

Тема: Составление цепи питания Цель: расширить знания о биотических факторах среды. Оборудование:гербарные растения...

Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

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

РЕВМАТИЧЕСКИЕ БОЛЕЗНИ Ревматические болезни(или диффузные болезни соединительно ткани(ДБСТ))— это группа заболеваний, характеризующихся первичным системным поражением соединительной ткани в связи с нарушением иммунного гомеостаза...

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