Лабораторная работа 5. Тема: Создание и вывод графический изображений на форму

Тема: Создание и вывод графический изображений на форму.

Анимация.

Цель работы:

- Изучить приемы рисования, вывода изображений и анимации изображений в Visual Studio.Net.

 

Теоретические сведения

 

Система координат, принятая по умолчанию, использует в качестве единицы измерения пиксели, а в качестве исходной точки — верхний левый угол. Координата X определяет смещение вправо, а координата Y — смещение вниз.

 

 

Рисунок 5.1 - Система координат, используемая по умолчанию.

 

Для того чтобы вывести графическое изображение в окне формы необходимо в созданном средствами Visual Studio приложении WindowsApplication вставить в класс формы строку this.Paint += new PaintEventHandler(Form1_Paint ); -где Form1 – имя формы, например:

public Form1() {

InitializeComponent();

this.Paint += new PaintEventHandler(Form1_Paint);

}

private void Form1_Paint(Object sender, PaintEventArgs e) {

Graphics g = e.Graphics;

...

}

 

Методы, определенные в классе Graphic, требуют, указания положения или область для вывода графического объекта. Для передачи методам подобной информации в пространстве имен System.Drawing предусмотрены типы Point, Rectangle, Region и Size.

· Point используется для передачи координат (х, у).

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

· Тип Size определяет размер прямоугольной области в каком-либо измерении (то есть используется для указания высоты или ширины).

· Тип Region необходим для работы с непрямоугольными областями.

Внутренние переменные, используемые для хранения данных в Point, Rectangle и Size, являются целочисленными (то есть относятся к типу int). Если же возникла необходимость указывать координаты или размеры при помощи значений с плавающей запятой (тип float), то можно использовать типы PointF, RectangleF и SizeF.

Таблица 5.1.Члены типа Point (PointF)

Член Назначение
X, У Эти свойства позволяют получать и устанавливать значения координат х и у
IsEmpty Этосвойство возвращает true, если значения х и у равны нулю
Offset() Этот метод позволяет произвести смещение точки относительно исходной позиции

 

Например, создадим объект типа Point, и координатам X иY присвоим числовые значения.

Point pt = new Point (100, 72);

//Смещаем точку

pt.Offset(20, 20); // в результате координаты точки будут (120, 92)

// Меняем значение координаты X для pt

pt.X = 40; // в результате координаты точки будут (40, 92)

 

Таблица 5.2.Члены классов Rectangle и RectangleF

Член Назначение  
!=, = = Перегруженные операторы, позволяющие сравнивать два прямоугольника
Inflate(), Intersect(), Union() Эти статические методы позволяют увеличивать размеры прямоугольника и создавать новые прямоугольники путем разделения или объединения существующих.
Тор, Left, Bottom, Right, Эти свойства устанавливают измерения прямоугольника
Height, Width Эти свойства определяют высоту и ширину прямоугольника
Contains() Этот метод позволяет определить, попадает ли точка с указанными координатами (или другой прямоугольник) внутрь области, занимаемой прямоугольником
X, Y Определяют координаты x и у верхнего левого угла прямоугольника

 

Класс Region

Этот класс представляет собой внутреннюю область, занятую геометрической фигурой. Чтобы создать объект этого класса, необходимо передать его конструктору некоторый объект, представляющий собой геометрическую фигуру. Например, есть прямоугольник размером 100 на 100 пикселов. Чтобы получить объект класса Region, соответствующий внутренней области этого прямоугольника, код может быть таким:

// Получаем объект Region для прямоугольника

Rectangle г = new Rectangle(0, 0, 100, 100);

Region rgn = new Region(r);

После того как объект класса Region создан, можно использовать многочисленные члены этого класса. Наиболее важные из них представлены в таблице:

 

Таблица 5.3.Члены класса Region

Член Назначение
Complement() Дополняет объект Region другими графическими объектами, которые не пересекаются с исходным объектом Region
Exclude() Исключает область, занимаемую другим графическим объектом, из области объекта Region
Intersect() Перегружен. Уменьшает область, занимаемую исходным объектом Region, до области наложения друг на друга исходного и указанного пользователем объектов Region
GetBounds() Возвращает объект класса RectangleF, представляющий прямоугольник, в который точно вписана область, занимаемая объектом Region
IsEmpty(), MakeEmpty() Позволяют определить, имеет ли область, занимаемая данным объектом Region, нулевой размер, или установить нулевой размер для области Region
IsInfinite(), MakeInfinite() Позволяют определить, является ли область, занимаемая объектом Region, бесконечной, или установить бесконечный размер для данной области
Translate() Сдвигает координаты объекта Region на указанную пользователем величину
Union() Объединяет указанный объект Region с другим графическим объектом
Хог() Объединяет указанный объект Region с другим графическим объектом, исключая при этом область пересечения этих двух объектов

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: