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

Графические объекты. Класс Graphics

Изображения на форму можно наносить двумя способами. Можно использовать изображения, сохраненные в графических файлах, а можно рисовать линии и другие фигуры программным способом.

Для обеспечения возможности рисования VС++ имеет специальный класс Graphics, расположенный в пространстве имен System::Drawing. Его код и содержит методы для рисования фигур и других лействий с графикой.

Возможности класса Graphics можно использовать, только создав объект из этого класса. Изображения можно выводить на форме, кнопке, текстовом поле, графическоом поле PictureBox, на других элементах управления. Для каждой формы или объекта управления, на котором мы хотим рисовать, должен быть создан свой объект класса Graphics.

Рассмотрим пример (Пример программы №2). Пусть необходимо нарисовать на форме отрезок прямой лини синего цвета между точками с координатами (50;20) и (200; 100).

Создайте новый проект. Разместите на форме кнопку с надписью «Нарисовать линию». Напишите такой код функции нажатия на эту кнопку:

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)

{Graphics^ Graph;

Graph = this->CreateGraphics();

Graph->DrawLine(Pens::Blue, 50, 20, 200, 100);

}

С охраните проект и запустите его. Нажмите на кнопку «Нарисовать линию». Должен получиться пример такой результат, как на рисунке.

Изучим эту функцию более подробно.

В первой строке функции объявляется объект класса Graphics:

Graphics^ Graph;

Далее нужно этот объект создать. Нам уже известно, что объекты могут быть могут быть созданы с помощью ключевого слова gcnew. Однако для объекта класса Graphics необходимо воспользоваться другим способом. У формы и элементов управления есть специальный метод CreateGraphics, при помощи которого каждый элемент управления или форма создает свой собственный объект класса Graphics. Именно поэтому вторая строка нашей процедуры содержит инструкцию

Graph = this->CreateGraphics();

Объект c названием Graph создан. Поскольку он создан методом CreateGraphics, принадлежащим форме, он сможет рисовать только на ней.

Теперь можно рисовать. Для этого воспользуется методом DrawLine объект Graph.

Graph->DrawLine(Pens::Blue, 50, 20, 200, 100);

Четыре числа в качестве последних аргументом метода DrawLine – это координаты двух точек, между которыми проводится отрезок. (Координата (0; 0) – это левый верхний угол формы). А аргумент Pens::Blue определяет цвет линии.

Линии фигур VC++ чертим пером. Существует специальный класс Pens (перья), содержащий несколько десятков перьев разных цветов.

Простейшие графические фигуры

Познакомимся с некоторыми методами класса Graphics.

Метод DrawLine позволяет нарисовать отрезок прямой. Его синтаксис:

Object->DrawLine (pen, x1, y1, x2, y2);

Метод DrawRectangle позволяет нарисовать прямоугольник по положению левого верхнего угла, ширине и высоте. Его синтаксис:

Object->DrawRectangle (pen, x, y, width, height);

Например:

Graph->DrawRectangle(Pens::Black, 10, 10, 100, 50);

Метод DrawEllipse позволяет нарисовать эллипс, вписанный в невидимый прямоугольник заданного размера. Синтаксис метода:

Object->DrawEllipse (pen, x, y, width, height);

Например:

Graph->DrawEllipse(Pens::Aqua, 10, 60, 100, 50);