Министерство транспорта и связи Украины
Одесская национальная академия связи им. А.С. Попова
КОМПЛЕКСНАЯ РАБОТА
по предмету „Компъютерно - интегрированые технологии ”
Выполнила:
студентка 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.
