Помощничек
Главная | Обратная связь


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

Использование графических примитивов



МЕТОДИЧЕСКИЕ УКАЗАНИЯ

 

к лабораторным работам по дисциплине

 

«Компьютерная графика и 3D визуализация»

(наименование дисциплины)

«Графика и интерфейсы»

(наименование модуля)

 

для студентов специальности 5B070400 «Вычислительная техника и программное обеспечение»

(шифр, наименование специальности)

 

 

Караганда 20 14

Лабораторная работа № 1

Использование графических примитивов

Ц е л ь р а б о т ы: получение навыков построения изображений с помощью графических примитивов.

 

Задание к работе

1. Изучить возможности Delphi для работы в графическом режиме.

2. Изучить графические примитивы языка Delphi.

3. Разработать алгоритм и составить программу для построения на экране изображения в соответствии с номером варианта. В качестве исходных данных взять указанные в табл. 2 параметры, и, возможно, дополнить недостающими.

Содержание отчета

1. Постановка задачи.

2. Вывод необходимых формул.

3. Спецификации подпрограмм.

4. Описание основных алгоритмов.

5. Тексты программ.

6. Наборы тестовых данных для построения изображений.

7. Ответы на контрольные вопросы.

 

Методические указания

 

Богатство изобразительных возможностей Windows связано с так называемым дескриптором контекста графического устройства DS (Device context) и тремя входящими в него инструментами – шрифтом, пером и кистью. В Delphi созданы специализированные классы-надстройки, существенно упрощающие использование графических инструментов Windows: для контекста – класс TCanvas, для шрифта – TFont, для пера – Tpen и для кисти TBrush. Связанные с этими классами объекты автоматически создаются для всех видимых элементов и становятся доступны программе через свойства Canvas, Font, Pen и Brush.

С помощью свойства pixels все пикселы канвы представляются в виде двумерного массива точек с нулевой нижней границей по каждому измерению; точка Pixels [0, 0] соответствует левому верхнему пикселу канвы. Изменяя цвет пикселов, можно прорисовывать изображение по отдельным точкам. Методы класса перечислены в табл. 1.

 

Таблица 1- Методы класса TCanvas

Метод Выполняемое действие
procedure Arc(XI, Yl, Х2, Y2, ХЗ, Y3, Х4, Y4: Integer); Чертит дугу эллипса в охватываю-щем прямоугольнике (xi.Yl) — (X2.Y2). Начало дуги лежит на пере-сечении эллипса и луча, проведен-ного из его центра в точку (хз.УЗ), а конец - на пересечении с лучом из центра в точку (X4.Y4). Дуга чертится против часовой стрелки.
procedure Chord (XI, Yl, К Y2, ХЗ, Y3, Х4, Y4: Integer); Чертит сегмент эллипса в охваты-вающем прямоугольнике (xi.Yl) — (X2.Y2). Начало дуги сегмента лежит на пересечении эллипса и луча, проведенного из его центра в точку (x3,Y3), а конец - на пересе-чении с лучом из центра в точку (x4,Y4). Дуга сегмента чертится против часовой стрелки, а начальная и конечная точки дуги соединяются прямой.
procedure CopyRect (Dest: TRect; Canvas: TCanvas; Source: TRect); Копирует изображение Source канвы Canvas в участок Dest текущей канвы
procedure Draw (X, Y: Integer; Graphic: TGraphic)   Осуществляет прорисовку графического объекта Graphic так, чтобы левый верхний угол объекта расположился в точке (x,Y)
procedure DrawFocusRect (constRect: Rect); Прорисовывает прямоугольник с помощью операции XOR, поэтому повторная прорисовка уничтожает ранее вычерченный прямоугольник. Используется, в основном, для прорисовки нестандартных интерфейсных элементов при получении ими фокуса ввода и при потере его
procedure Ellipse(XI, Yl, Y2: Integer); Чертит эллипс в охватывающем прямоугольнике (xi.Yl) — (X2.Y2). Заполняет внутреннее пространство эллипса текущей кистью
procedure FillRect (const Rect:TRect); Заполняет текущей кистью прямоугольную область Rect, включая ее левую и верхнюю границы, но не затрагивая правую и нижнюю границы

Продолжение табл.1

procedureFloodFill(X, Y: Integer; Color: TColor; FillStyle: TFillStyle); Производит заливку канвы текущей кистью. Заливка начинается с точки (X,Y) и распространяется во все стороны от нее. Если FillStyle=fsSurface, заливка распространяется на все соседние точки с цветом Color. Если FillStyle=fsBorder, наоборот, заливка прекращается на точках с этим цветом
procedure FrameRect (const Rect: TRect); Очерчивает границы прямоугольника Rect текущей кистью толщиной в 1 пиксел без заполнения внутренней части прямоугольника
procedure LineTo(X, Y: Integer) ; Чертит линию от текущего положения пера до точки (X,Y)
procedure MoveTo(X, Y: Integer) ; Перемещает перо в положение (X,Y) без вычерчивания линий
procedureRoundRect(XI, Yl, X2, Y2, X3, Y3: Integer); Вычерчивает и заполняет прямоугольник (X1,Yl) — (X2,Y2) со скругленными углами. Прямоугольник (X1,Yl)— (X3,Y3) определяет дугу эллипса для скругления углов
procedure Polygon (Points: array of TPoint); Вычерчивает пером многоугольник по точкам, заданным в массиве Points. Конечная точка соединяется с начальной, и многоугольник заполняется кистью. Для вычерчивания без заполнения используйте метод Polyline

 

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

Таблица 2

Вариант Рисунок Исходные данные
a   a − основания равнобедренных треугольников; n − количество описанных окружностей  
   
 
 

 


h

угол между лучами; h − расстояние между центрами окружностей, вписанных в данный угол
 
 
 

 

a,b − стороны треугольника; n − количество вписанных окружностей

Продолжение табл.2

        b   a   а, b − минимальные полуоси эллипса; n − количество вложенных полуэллипсов
5 h   Огибающая эллипсов парабола. h − расстояние между цент -рами эллипсов; k − отношение полуосей эллипсов  
  a   а − сторона правильного многоугольника; n − количество сторон правильного многоугольника
7   n − количество сторон правильного многоугольника

Продолжение табл.2

a         a − сторона треугольника; n − количество вписанных треугольников
    a, b -стороны треугольника; n - количество описанных около окружностей квадратов  
10 R1
 
 

 


R2

 

 

R1, R2 - радиусы окружностей, образующих кольцо; n - количество окружностей, равномерно размещенных в кольце (n≥2).
 
 
 

 

 


b

 

 

a

 

 

а, b − полуоси внутреннего эллипса; n − количество описанных эллипсов

 

Продолжение табл. 2

       
   

12

y=kx+c     b   a а, b − полуоси внутреннего эллипса; n − количество описанных около эллипсов ромбов    
    h       угол между лучами; h − начальное расстояние
   
 
 

 


 

а а

а

 

а − минимальная сторона треугольника; n − количество вписанных треугольников
 
 
 

 


 

 

k − отношение оснований трапеций; n − количество вписанных окружностей

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

1. Что входит в состав видеосистемы персонального компьютера?

2. Основные функции видеоадаптера.

3. Классификация и анализ графических режимов.

4. Система координат экрана и управление графическим курсором.

5. Что такое графический примитив?

6. Подпрограммы для вывода отрезков.

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

8. Управление стилем линий.

9. Изображение окружностей, эллипсов, дуг.

10. Что такое коэффициент сжатия изображения, и в каких случаях его следует учитывать?

 

Лабораторная работа № 2

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.