Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабор_работа №6 графика.doc
Скачиваний:
13
Добавлен:
21.04.2015
Размер:
609.79 Кб
Скачать

2.3. Типы данных для хранения информации о графических объектах

1. Хранение координат точки осуществляется с помощью класса CPoint. Объект этого класса содержит координаты точки x, y (тип данных LONG), а также методы для работы с координатами экрана. Основные методы этого класса перечислены ниже.

Метод для определения координат точки, в которой установлено перо:

CPoint GetCurrentPosition();

Метод перемещения пера в другую точку экрана, заданную координатами x, y или объектом point:

CPoint MoveTo( int x, int y );

CPoint MoveTo( CPoint point );

Метод возвращает координаты предыдущей точки пера.

Для передачи адреса объекта класса CPoint применяют тип данных LPPOINT.

2. Для хранения данных о прямоугольниках используют класс CRect. Он содержит следующие свойства:

LONG left – левая координата прямоугольника;

LONG right – правая координата прямоугольника;

LONG top – верхняя координата прямоугольника;

LONG bottom – нижняя координата прямоугольника.

Этот класс также содержит методы для работы с прямоугольниками, например, методы, возвращающие значения высоты и ширины прямоугольника соответственно:

int Height();

int Width();

Для передачи адреса объекта класса CRect применяют тип данных LPCRECT.

2.4. Методы рисования линейчатых объектов класса cClientDc

1. Метод рисования линии активным пером из текущей точки экрана в точку, заданную координатами x, y или объектом point:

BOOL LineTo( int x, int y );

BOOL LineTo( CPoint point );

2. Метод рисования дуги:

BOOL Arc( int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4);

BOOL Arc( LPCRECT Rect, CPoint Start, CPoint End );

Он рисует активным пером эллиптическую кривую внутри прямоугольника, заданного с помощью объекта Rect или координатами его вершин (x1y1); (x2y2), расположенных на диагонали, от начальной точки Start или (x3y3) до конечной точки End или (x4y4) в направлении против часовой стрелки.

3. Методы определения и установки направления рисования дуги класса CClientDC:

int GetArcDirection(); // определение направления рисования дуги

int SetArcDirection(int ArcDirection);

//установка направления рисования дуги

Параметр ArcDirection может принимать следующие значения:

  • AD_COUNTERCLOCKWISE – при рисовании дуги против часовой стрелки;

  • АD_CLOCKWISE – при рисовании дуги по часовой стрелке.

4. Метод рисования полилинии, который последовательно рисует текущим пером отрезки по точкам, заданным в массиве Points, количество использованных точек равно Count:

BOOL Polyline (LPPOINT Points, int Count );

2.5. Методы рисования закрашенных объектов с помощью кисти

1. Метод закрашивания кистью Brush прямоугольника, заданного объектом Rect:

void FillRect( LPCRECT Rect, CBrush* Brush );

2. Метод закрашивания единичной рамки кистью Brush вокруг прямоугольника Rect:

void FrameRect( LPCRECT Rect, CBrush* Brush );

3. Метод закрашивания активной кистью прямоугольника заданного объектом Rect или координатами его вершин (x1y1); (x2y2), расположенных на диагонали:

BOOL Rectangle( int x1, int y1, int x2, int y2 );

BOOL Rectangle( LPCRECT Rect );

4. Метод закрашивания активной кистью прямоугольника со скругленными углами заданного координатами его вершин (x1y1); (x2y2), расположенных на диагонали. Скругления углов задаются эллипсом шириной x3 и высотой y3:

BOOL RoundRect( int x1, int y1, int x2, int y2, int x3, int y3 );

5. Метод рисования закрашенного цветом cоlоr прямоугольника, который задан объектом Rect:

void FillSolidRect( LPCRECT Rect, COLORREF cоlоr );