Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
основная часть.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
671.78 Кб
Скачать

1.6.2 Классы Windows Forms

Интерфейс управляемых классов GDI+ содержит около 60 классов, 50 перечислений и 8 структур. Класс Graphics является основой интерфейса GDI+, этот класс непосредственно выполняет рисование прямых и кривых линий, геометрических фигур, вывод рисунков и текста.

Многие классы работают совместно с классом Graphics. Например, метод DrawLine получает объект Pen, содержащий атрибуты рисуемой линии, такие как цвет, ширина, наличие или отсутствие пунктира и т. п. Метод FillRectangle может получать указатель на объект LinearGradientBrush, работающий совместно с объектом Graphics и реализующий заполнение прямоугольника постепенно меняющимся цветом. Объекты Font и StringFormat определяют то, как объект Graphics выводит на экран текст. Объект Matrix обеспечивает выполнение различных действий по объемным преобразованиям объекта Graphics, которые используются для вращения, масштабирования и отражения рисунков.

  1. Класс Pen — служит для рисования линий, контуров и отрисовки других геометрических объектов.

  2. Класс Brush — служит для заливки областей, например фигур, изображений или текста.

  3. Класс Font — содержит описание фигур, которые должны использоваться при отрисовке текста.

  4. Структура Color — содержит различные цвета.

Интерфейс GDI+ предоставляет несколько структур, таких как Rectangle, Point и Size, которые используются для хранения графических данных. Некоторые классы также используются, в основном, как структурированные типы данных. Например, класс BitmapData является вспомогательным хранилищем данных для класса Bitmap, а класс PathData является вспомогательным хранилищем данных для класса GraphicsPath.

В GDI+ определены несколько перечислений, которые являются коллекциями связанных констант.Например, перечисление LineJoin содержит элементы Bevel, Miter и Round, определяющие стили соединения линий.

1.7 Определение сортировки слиянием

Сортировка слиянием (англ. merge sort) — алгоритм сортировки, который упорядочивает списки (или другие структуры данных, доступ к элементам которых можно получать только последовательно, например — потоки) в определённом порядке. Эта сортировка — хороший пример использования принципа «разделяй и властвуй». Сначала задача разбивается на несколько подзадач меньшего размера. Затем эти задачи решаются с помощью рекурсивного вызова или непосредственно, если их размер достаточно мал. Наконец, их решения комбинируются, и получается решение исходной задачи. Сам алгоритм сортировки был изобретён Джоном фон Нейманом в 1945 году.3

1.8 Пример сортировки слиянием

Сначала делим список на кусочки (по 1 элементу), затем сравниваем каждый элемент с соседним, сортируем и объединяем. В итоге, все элементы отсортированы и объединены вместе.

Для решения задачи сортировки эти три этапа выглядят так:

1.Сортируемый список разбивается на две части примерно одинакового размера;

2.Каждая из получившихся частей сортируется отдельно, например — тем же самым алгоритмом;

3.Два упорядоченных подсписка половинного размера соединяются в один.

1.1. - 2.1. Рекурсивное разбиение задачи на меньшие происходит до тех пор, пока размер списка не достигнет единицы (любой список, длина которого равна единицы, можно считать упорядоченным).

3.1. Соединение двух упорядоченных списков в один.

Основную идею слияния двух отсортированных списков можно объяснить на следующем примере. Пусть мы имеем два подсписка. Пусть также, элементы подсписков в каждом из этих подсписков отсортированы по возрастанию. Тогда:

3.2. Слияние двух подсписков в третий результирующий список.

На каждом шаге мы берём меньший из двух первых элементов подсписков и записываем его в результирующий список. Счетчики номеров элементов результирующего списка и подсписка, из которого был взят элемент, увеличивается на единицу.

3.3. "Прицепление" остатка.

Когда один из подсписков закончился, происходит добавление всех оставшихся элементы второго подсписка в результирующий список.