Введение
Реализация графических элементов при помощи машинно-зависимых языков – трудоемкий процесс по сравнению с реализацией аналогичных задач на высокоуровневых языках программирования. Но подобное исполнение дает некоторые преимущества:
рациональное использование памяти;
высокая производительность.
Таким образом, при функционировании с большим объёмом графической информации каждый квалифицированный программист должен иметь навыки работы с графикой на низкоуровневых языках, с целью реализации эффективной программы.
Основные элементы реализации графики
Графический примитив – элементарный геометрический объект, отображаемый на экране дисплея. К таким объектам можно отнести: точку, отрезок, окружность, дугу и так далее.
Чем сложнее изображение, тем больше оно включает в себя таких примитивов. Поэтому при работе с графикой очень важно иметь представления о том, как устроены подобные объекты.
Для того чтобы система послала запрос для окраски части окна приложения необходимо отправить сообщение WM_PAINT.
Метод реализации: создание виртуального окна, в котором располагается весь вывод (при получении главным окном сообщения WM_PAINT содержимое виртуального окна переносится в главное).
Немаловажным моментом является инициализация класса окна, которое определяет важные характеристики окна:
Style – стиль окна
hbrBackground – фон окна
cbSize – размер структуры окна
hCursor / hIcon – дескрипторы курсора / иконки
Графические объекты имеют ту же систему координат для вывода что и система текстовой информации для ввода. Единица измерения координат – логическая единица, которая изначально соответствует пикселю изображения. Но при желании данное соотношение можно изменить при помощи функции SetMapMode.
Цвет графических примитивов задаётся:
SetPixel – точки;
CreateSolidBrush – замкнутые объекты (кисть);
CreatePen – линии (перо);
При создании разноцветного изображения можно заранее создать несколько кистей и перьев, а затем выбирать их при помощи функции SelectObject.
Область вывода графических элементов можно установить при помощи функции SetViewportExtEx. А начало области ввода при помощи функции SetViewportOrgEx.
Еще некоторые функции для рисования графики:
LineTo – создание линии от текущей до заданной точки;
Ellipse – создание эллипса;
MoveToEx – сменить текущую точку;
Rectangle – создание прямоугольника;
Arc – создание дуги;
Заключение
Подводя итоги можно сказать, что графическое программирование на низкоуровневых языках очень трудоемких процесс, предназначенный для повышения программной эффективности. В данной статье были рассмотрены основные понятия и принципы создания графических изображений с помощью машинно-зависимых языков, имеющий ряд преимуществ перед высокоуровневыми языками программирования.
Библиографические ссылки
Абрамова О.Ф. Использование мультимедийных технологий в процессе обучения дисциплине "Компьютерная графика" / О.Ф. Абрамова, С.В. Белова // Успехи современного естествознания. - 2012. - № 3. - C. 90.
Сторчак Н.А. Учебник «Компьютерная графика» / Н.А. Сторчак, В.Н. Тышкевич, А.В. Синьков // Международный журнал экспериментального образования. - 2015. - № 11 (часть 3). - C. 469.
Якушина А.А. Компьютерная графика [Электронный ресурс] / А.А. Якушина, О.Ф. Абрамова // Современные технологии и инженерное образование : матер. науч.-практ. конф. (г. Волжский, ноябрь – декабрь 2014 г.) / ООО «Центр экологической безопасности и энергосбережения». – 1 электрон. опт. диск (CD-ROM). - Волжский, 2015. - C. 18-20.
Пильщиков В. Н. Assembler. Программирование на языке ассемблера IBM PC / В.Н. Пильщиков. - М.: Диалог-Мифи, 2005. - 288 c
Шакаев В.Д. Абстрагирование низкоуровневых API при создании кроссплатформенных графических приложений / В.Д. Шакаев, О.А. Шабалина // Вестник компьютерных и информационных технологий. - 2014. - № 8. - C. 11-16.