Перечень операторов для построения примитивов
LineTo(x,y) – строит отрезок от графического курсора до точки с координатами
Графический курсор – вспомогательная точка экрана, координаты которой хранятся канвой в полях PenPos.X, PenPos.Y. Курсор можно установить в точку оператором MoveTo(x0,y0). Метод LineTo(x,y) переустанавливает курсор в точку .
Arc(x1,y1,x2,y2,x3,y3,x4,y4) – строит дугу эллипса.
Эллипс вписывается в прямоугольник с диагональными вершинами , . Центр располагается в точке . Точки , задают лучи , которые пересекаясь с эллипсом определяют начальную и конечную точки дуги. Дуга вычерчивается от точки к против часовой стрелки. Внутренность не закрашивается.
Ellipse(x1,y1,x2,y2) – строит эллипс.
Эллипс вписывается в прямоугольник с диагональными вершинами , . Внутренность эллипса закрашивается кистью.
Chord(x1,y1,x2,y2,x3,y3,x4,y4) – строит сегмент эллипса.
Сегмент образован дугой (см. Arc), концы которой соединены отрезком. Сегмент закрашивается кистью.
Pie(x1,y1,x2,y2,x3,y3,x4,y4) – строит сектор эллипса.
Сектор строится как дуга, концы которой соединяются с центром эллипса. Сектор закрашивается кистью.
Rectangle(x1,y1,x2,y2) – строит прямоугольник.
Прямоугольник задаётся диагональными вершинами , . Внутренность закрашивается кистью.
RoundRect(x1,y1,x2,y2,x3,y3) – строит прямоугольник с закруглёнными краями.
Прямоугольник задаётся диагональными вершинами , и радиусами закругления по краям. Внутренность закрашивается кистью.
Polygon(массив точек типа TPoint) – строит замкнутую ломаную линию.
Массив можно задать непосредственно, например,
Polygon([Point(x1,y1), Point(x2, y2), …, Point(xN,yN)]);
Точки (x1,y1),(x2, y2), …, (xN,yN) последовательно соединяются отрезками, причём последняя соединяется с первой, образуя замкнутую линию. Внутренность закрашивается кистью.
PolyLine(массив точек типа TPoint) – строит ломаную линию.
Параметры как в предыдущем случае, но крайние точки не соединяются, и внутренность не закрашивается.
FrameRect(x1,y1,x2,y2) – строит прямоугольную рамку.
То же, что Rectangle , только рамка шириной в 1 пиксель красится цветом кисти, а внутренность не закрашивается.
Билет №25:
Битовые карты
1) Битовой картой называется участок памяти, организованный для хранения картинки. Тип: TBitMap.
2) Картинку битмапа можно сохранять методом SaveToFile.
3) Копирование изображений
Удобным средством построения сложных изображений, содержащих множество персонажей и двигающихся фигур, является прием копирования одной прямоугольной области канвы на другую. В зависимости от конкретной задачи целесообразно использовать следующие методы копирования.
Ø Canvas.Draw(X, Y, b): копирует на указанную канву Canvas картинку, которая содержится в графическом объекте b типа TGraphic (объединяет графические форматы .jpg, .jpeg, .ico, .emf, .wmf обычно b - битовая матрица .bmp). Картинка копируется на Canvas без изменения размера, начиная от точки с целыми координатами X, Y. В процессе выполнения операции может соблюдаться требование «прозрачности». Прозрачными считаются точки особого цвета, который указан свойством TransparentColor, например,
b.TransparentColor:=0
Такие точки не копируются, создавая впечатление прозрачных частей картинки b. Чтобы разрешить это действие необходимо установить свойство
b.Transparent:=True
В противном случае прозрачность игнорируется.
Ø Canvas.StretchDraw(область,b): делает тоже, масштабируя и подгоняя картинку под размеры прямоугольной «области». Параметр «область» является объектом типа TRect и может указываться непосредственно, например,
Canvas.StretchDraw(Rect(40, 20, 100,50), b)
Ø Canvas.CopyRect(D, канва-источник, S): универсальный метод копирования части одной канвы на другую. Параметры «канва-источник» и S задают канву картинки-оригинала и её прямоугольный фрагмент типа TRect, например,
Canvas.CopyRect(Rect(40, 20, 100,50), b.canvas, Rect(0, 0, 200,150))
Копирование осуществляется на Canvas с подгонкой в прямоугольник D типа TRect. Прозрачность не соблюдается, но в момент наложения точек выполняется некоторая логическая операция с цветом. Вид операции определяется режимом
Canvas.CopyMode, который может быть таким:
CopyMode:=cmSrcCopy - простое копирование;
CopyMode:=cmSrcAnd - режим AND;
CopyMode:=cmSrcPaint - режим OR;
CopyMode:=cmSrcInvert - режим XOR
Canvas.BrushCopy(D, канва-источник, S, цвет): копирует одну часть канвы на другую, используя параметры D, канва-источник, S как выше. Режим копирования игнорируется. Области, состоящие из точек заданного «цвета» заливаются кистью в соответствии с установками Canvas.Brush.
4) Разработка собственного шаблона заливки. При заливке области кистью используется шаблон (орнамент), который выбирается свойствами кисти Brush.SetStyle:=… из нескольких предопределённых вариантов. Программист имеет возможность разработать собственный шаблон в виде битмапа 8х8 точек, который загружается в свойства кисти Brush.Bitmap:=Nil; - сбрасывается.
Билет №26,27:
Проект Delphi
ü Проектом называется совокупность головного модуля, подключаемых к нему библиотечных модулей и вспомогательных файлов, которые совместно участвуют в построении программы.
ü Проект удобен при коллективной разработке программы.
ü Обычно в состав проекта входит головной модуль с расширением dpr и модуль формы (окна программы) с расширением pas
Заготовка проекта создаётся по умолчанию, или из меню
File\New\Application
ü Язык Delphi разработан для программирования в операционной системе Windows. Он использует идеологию этой системы
1. главным элементом системы Widows является окно, обладающее визуальными свойствами (размер, цвет, заголовок и др.)
2. окно содержит другие элементы (кнопки, окна редактирования и т.п.)
3. в окнах происходят события, которые отслеживаются и обрабатываются системой (нажатия клавиш, щелчки мыши и др.)
ü Программирование в Delphi строится по модульному принципу. Программа пишется в виде проекта, состоящего из головного модуля и подключаемых к нему библиотек. В библиотеках реализуются главные цели программы. Например, программный код, определяющий структуру и функционирование главного окна (формы), описывается в виде библиотеки.
Код головного модуля обычно скрыт, а на экране отображена форма и текст её библиотечного модуля