№ | Слайд | Текст |
1 |
 |
Формирование изображений программным способом(Объект Canvas) Delphi. Тема 13: |
2 |
 |
Понятие холстаРисование прямых, ломаных и кривых линий. Рисование геометрических фигур. Заполнение внутреннего пространства фигур. Рисование в ограниченном прямоугольнике. Программирование элементов анимации. «Формирование изображений программным способом» План темы: |
3 |
 |
Понятие холстаФормирование изображений программным способом – самый гибкий и универсальный способ формирования изображений, но и самый трудоёмкий (с точки зрения программирования). В любом визуальном компоненте Delphi, будь то форма или управляющий элемент, существует специальный объект, средствами которого выполняется рисование видимых частей компонента. Он называется холстом и оформлен в виде вложенного объекта Canvas. |
4 |
 |
Понятие холстаОбъект Canvas имеет пять главных составных свойств: Pen – для рисования линий и границ геометрических фигур; Brush – для заполнения фигур; Font – для вывода текста; PenPos.X, PenPos.Y – для хранения текущей позиции рисования; Pixels[X, Y] – массив для записи и считывания цвета пикселов холста. |
5 |
 |
Понятие холстаБлагодаря свойству Pixels холст интерпретируется как двумерная матрица пикселов. Элемент, стоящий на пересечении столбца X и строки Y матрицы Pixels, кодирует цвет пикселя. Координатная система объекта Canvas выбрана таким образом, что левый верхний пиксель изображения имеет координаты [0, 0], ось Х направлена вправо, а ось Y – вниз. |
6 |
 |
Понятие холстаВывод графических примитивов выполняется с помощью методов объекта Canvas, которые мы рассмотрим ниже в этой теме. Команды рисования рекомендуется записывать в обработчике события OnPaint для формы. Оно происходит, когда форма «перерисовывает» себя после какого-либо изменения области обновления. |
7 |
 |
Рисование прямых, ломаных и кривых линийДля рисования прямых, ломаных и кривых линий используются следующие методы объекта Canvas: MoveTo(X,Y: Integer) – перемещает указатель текущей позиции в заданную точку (без рисования отрезка); LineTo(X,Y: Integer) – рисует прямую линию от текущей позиции рисования до заданной (X,Y) и перемещает указатель текущей позиции в эту точку; |
8 |
 |
Рисование прямых, ломаных и кривых линийPolyline(Points: array of Tpoint) – рисует ломаную линию, соединяя точки массива Points. Для получения элемента массива по двум координатам может использоваться функция Point(X, Y : Integer): Tpoint, например – нарисовать равнобедренный треугольник: Canvas.Polyline ([Point (20,100), Point (100, 20), Point(180, 100), Point(20, 100)]); |
9 |
 |
Рисование прямых, ломаных и кривых линийArc(X1, Y1, X2, Y2, X3, Y3, X4, Y4 : Integer) – рисует дугу эллипса. Смысл параметров поясняется на рисунке: |
10 |
 |
Рисование геометрических фигурДля рисования геометрических фигур предназначены следующие методы объекта Canvas: Rectangle (X1,Y1,X2,Y2: Integer) – рисует прямоугольник с левым верхним углом в точке (X1,Y1) и нижним правым углом в точке (X2,Y2). Прямоугольник рисуется текущими атрибутами кисти и пера. |
11 |
 |
Рисование геометрических фигурRoundRect (X1,Y1,X2,Y2,X3,Y3: Integer) – рисует прямоугольник с закругленными углами. Углы рисуются как четверти эллипса с шириной X3 и высотой Y3. Смысл параметров поясняет рисунок: |
12 |
 |
Рисование геометрических фигурEllipse (X1,Y1,X2,Y2, : Integer) – рисует эллипс, вписанный в прямоугольник с левым верхним углом в точке (X1,Y1) и нижним правым углом в точке (X2,Y2). Эллипс рисуется текущими пером и кистью. Смысл параметров поясняет рисунок: |
13 |
 |
Рисование геометрических фигурPie(X1,Y1,X2,Y2,X3,Y3,X4,Y4: Integer) – рисует сектор эллипса, вписанного в прямоугольник с координатами (X1,Y1) и (X2,Y2). Сектор определяется двумя радиусами эллипса, проходящими через точки (X3,Y3) и (X4,Y4). Смысл параметров поясняет рисунок: |
14 |
 |
Заполнение внутреннего пространства фигурДля заполнения внутреннего пространства фигур используются следующие методы объекта Canvas: FillRect(const Rect: Trect) – заполняет прямоугольник, используя текущую кисть. Для получения прямоугольника по его координатам может использоваться функция Rect(X1,Y1,X2,Y2 : Integer). ПРИМЕР: «Градиентная заливка». FloodFill(X,Y: Integer; Color: Tcolor; FillStyle: TfillStyle) – заливает область экрана, используя атрибуты кисти. Заливка начинается в точке (X, Y) и продолжается во всех направлениях до достижения указанной в параметре Color цветовой границы. Способ заполнения области определяется параметром FillStyle (fsBorder, или fsSurface). |
15 |
 |
Рисование в ограниченном прямоугольникеНа практике бывает необходимо рисовать не на всей форме, а в ограниченном прямоугольнике. Для этого применяется компонент PaintBox: ПРИМЕР: «Звездное небо». |
16 |
 |
Программирование элементов анимацииАлгоритм простейшей анимации: 1. Нарисовать объект; 2. Сделать паузу; 3. Стереть объект (нарисовать цветом фона); 4. Изменить координаты объекта; 5. Нарисовать объект; 6. Если требуется продолжить, то перейти на пункт 2. ПРИМЕР: «Движение». |
17 |
 |
Лабораторная работа № 9. «Формирование изображений программнымспособом. Элементы анимации». Далее: |
«Формирование изображений программным способом» |
http://900igr.net/prezentacija/informatika/formirovanie-izobrazhenij-programmnym-sposobom-221260.html