Министерство транспорта и связи Украины
Одесская национальная академия связи им. А.С. Попова
КОМПЛЕКСНАЯ РАБОТА
по предмету „Компъютерно - интегрированые технологии ”
Выполнила:
студентка 3-го курса
группы КТ-3.11
Борисович И.К.
Проверил:
Швайко И.Г.
Одесса-2011
Теоретические сведения
Построение графических изображений в С++ Borland
1. Поверхность для рисования в С++
Программа может вывести графику на поверхность формы (Form) или компонента (Image), которой соответствует свойство Canvas (Canvas – холст для рисования). Для того чтобы на поверхности формы или компонента Image появилась линия, окружность, прямоугольник или другой графический элемент (примитив), необходимо к свойству Canvas применить соответствующий метод (табл. 1). Например, команда
Forml->Canvas->Rectangle(10,10,50,50);
рисует на поверхности формы прямоугольник.
Таблица 1. Методы вычерчивания некоторых графических примитивов
Метод |
Действие |
LineTo(x,y) |
Рисует линию из текущей точки в точку с указанными координатами |
Rectangle (xl,yl,x2,y2) |
Рисует прямоугольник, xl, yl и х2, у2 – координаты левого верхнего и правого нижнего углов прямоугольника |
FillRect (xl,yl,x2, у2) |
Рисует закрашенный прямоугольник, xl, yl, х2, у2 – определяют координаты диагональных углов |
FrameRect (xl, yl,x2, у2) |
Рисует контур прямоугольника, xl, yl, х2, у2 – определяют координаты диагональных углов |
RoundRect (xl, yl, x2, y2, x3, y3) |
Рисует прямоугольник со скругленными углами |
Ellipse (xl,yl,x2,y2) |
Рисует эллипс или окружность (круг), xl, yl, х2, у2 – координаты прямоугольника, внутри которого вычерчивается эллипс или, если прямоугольник является квадратом, окружность |
Polyline (points,n) |
Рисует ломаную линию, points – массив типа TPoint. |
Методы вывода графических примитивов рассматривают свойство Canvas как некоторый абстрактный холст, на котором они могут рисовать (Canvas переводится как "поверхность", "холст для рисования"). Холст состоит из отдельных точек – пикселов. Положение пиксела на поверхности холста характеризуется горизонтальной (X) и вертикальной (Y) координатами. Координаты возрастают сверху вниз и слева направо (рис. 1).
Рис. 1. Координаты точек поверхности формы (холста)
Левый верхний пиксель поверхности формы (клиентской области) имеет координаты (0,0), правый нижний – (ClientWidth, ClientHeight). Доступ к отдельному пикселю осуществляется через свойство Pixels, представляющее собой двумерный массив, элементы которого содержат информацию о цвете точек холста.
Метод Polyline вычерчивает ломаную линию, последовательно соединяя прямыми отрезками точки, координаты которых находятся в массиве: первую со второй, вторую с третьей, третью с четвертой и т. д. Каждый элемент массива points представляет собой запись, поля х и у которой содержат координаты точки перегиба ломаной; n – количество звеньев ломаной.
2 Инструменты рисования
Методы вычерчивания графических примитивов обеспечивают только вычерчивание. Вид графического элемента определяют свойства Реп (карандаш) и Brush (кисть) той поверхности (Canvas), на которой рисует метод.
Карандаш и кисть, являясь свойствами объекта Canvas, в свою очередь представляют собой объекты Реп и Brush. Свойства объекта Реп (табл. 2) задают цвет, толщину и тип линии или границы геометрической фигуры. Свойства объекта Brush (табл. 3) задают цвет и способ закраски области внутри прямоугольника, круга, сектора или замкнутого контура.
Таблица 2. Свойства объекта Реп (карандаш)
Свойство |
Определяет |
Color |
Цвет линии: clRed – красный, clGreen – зеленый, clBlue – синий, clYellow – желтый и т.д. |
Width |
Толщину линии (задается в пикселях) |
Style |
Вид линии: psSolid – сплошная; psDash – пунктирная, длинные штрихи; psDot – пунктирная, короткие штрихи; psDashDot – пунктирная, чередование длинного и короткого штрихов; psDashDotDot – пунктирная, чередование одного длинного и двух коротких штрихов; psClear – линия не отображается (используется, если не надо изображать границу области – например, прямоугольника) |
Таблица 3. Свойства объекта Brush (кисть)
Свойство |
Определяет |
Color |
Цвет закрашивания замкнутой области |
Style |
Стиль заполнения области: bsSolid – сплошная заливка. Штриховка: bsHorizontal – горизонтальная; bsVertical – вертикальная; bsFDiagonal – диагональная с наклоном линий вперед; bsBDiagonal – диагональная с наклоном линий назад; bsCross – в клетку; bsDiagCross – диагональная клетка; bsClear – не закрашивать; |
3.1 Линия
Вычерчивание прямой линии выполняет метод LineTo. Метод рисует линию из той точки, в которой в данный момент находится карандаш (эта точка называется текущей позицией карандаша или просто "текущей"), в точку, координаты которой указаны в инструкции вызова метода. Например, команда
Image1->Canvas->LineTo(100,200);
рисует линию в точку с координатами (100, 200), после чего текущей становится точка с координатами (100, 200).
Начальную точку линии можно задать, переместив карандаш в нужную точку графической поверхности. Сделать это можно при помощи метода MoveTo, указав в качестве параметров координаты точки начала линии. Например, операторы
Image1->Canvas->MoveTo(10,10); // установить карандаш в точку (10,10)
Image1->Canvas->LineTo(50,10); // линия из точки (10,10) в точку (50,10)
рисуют горизонтальную линию из точки (10, 10) в точку (50, 10).
Используя свойство текущей точки, можно нарисовать ломаную линию. Например, операторы
Image1->Canvas->MoveTo(10,10);
Image1->Canvas->LineTo(50,10);
Image1->Canvas->LineTo(10,20);
Image1->Canvas->LineTo(50,20);
рисуют линию, похожую на букву Z.