Занимательные задачи по программированию обработки растровой графики

на главную - закладки

Жанры

Поделиться:

Занимательные задачи по программированию обработки растровой графики

Шрифт:

Введение

Такая тема, как машинная графика и ее применение, весьма популярна и среди преподавателей информатики, и среди школьников. Однако при программировании задания чаще всего ограничиваются лишь рисованием на экране различных геометрических фигур или составленных из них чуть более сложных картинок. При этом остается в стороне другой, также очень существенный и интересный «пласт» алгоритмов, касающихся графических преобразований растровых изображений – тех, которые мы привыкли выполнять средствами того или иного графического редактора, не задумываясь

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

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

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

При решении предлагаемых в данной брошюре задач (при написании, исполнении и отладке соответствующих программ) предлагается использовать среду визуального программирования Visual Basic (VB) либо транслятор с языка Паскаль – PascalABC.Net. Каждое из этих двух инструментальных средств обладает своими преимуществами и особенностями при работе с растровой графикой, которые будут рассмотрены далее.

Visual Basic как лабораторная среда

Выбор среды визуального программирования Visual Basic (VB) в качестве лабораторной среды обусловлен следующими соображениями.

Во-первых, язык Бейсик, на котором реализуются программные модули в VB, всем хорошо знаком и понятен, а сама оболочка Visual Basic достаточно популярна. (Для написания предлагаемых читателям листингов использована версия Visual Basic 6.0, которая в свое время распространялась по школам, но эти программы могут быть переписаны на новые версии VB или на другом языке программирования, в котором реализован функционал для работы с растровой графикой.)

Во-вторых, концепция визуального программирования позволяет легко и быстро «нарисовать» на экране интерфейс простейшего программного приложения, требуемого для испытания разрабатываемых алгоритмов (экранную форму, содержащую исходное изображение, поле для вывода результата и «пусковую» кнопку), сосредоточившись именно на самих алгоритмах графических преобразований.

Наконец, в третьих, Visual Basic предоставляет удобное средство загрузки на экранную форму исходного изображения из любого внешнего файла (например, формата BMP), не требуя разработки соответствующей подпрограммы и обращения к библиотекам работы с растровой графикой.

Методическая ценность использования Visual Basic в качестве лабораторной среды при изучении сложных алгоритмов также существенно повышается благодаря наличию в VB широкого набора встроенных средств отладки программ, что позволяет легко организовать отслеживание работы алгоритмов – в частности, контроль значений выбранных переменных. При этом режим отладки позволяет выполнять программу «по шагам» (по одной строке листинга при каждом нажатии клавиши F8), просматривая в отдельном окне выведенные системой отладки текущие значения отслеживаемых переменных.

Напомним, что управление средствами отладки сосредоточено в меню Debug (Отладка):

– пункт Add Watch (Добавить Наблюдателя) позволяет добавить любую из имеющихся в листинге переменных в список отслеживания значений (можно предварительно выделить в листинге имя требуемой переменной, тогда оно автоматически будет занесено в соответствующую графу окна добавления переменной, даже если выделенное имя не было скопировано в буфер обмена);

– пункт Edit Watch (Правка Наблюдателя) раскрывает окно управления списком отслеживаемых переменных, где можно добавлять новые переменные или удалять существующие, ставшие ненужными;

– пункт Toggle Breakpoint (Включить Финиш-Точки) либо горячая клавиша F9 позволяют создавать (или, при повторном вызове, снимать) в листинге контрольные точки останова. При вызове этого пункта или нажатии клавиши F9 текущая строка листинга, на которой находился текстовый курсор, выделяется бордовой фоновой подсветкой, а запущенная на выполнение программа, дойдя до отмеченной строки, приостанавливается, и Visual Basic переходит в режим отладки.

Запуск написанных программ и просмотр получаемых результатов мы будем производить средствами оболочки VB, хотя ничто не запрещает при желании и оттранслировать результаты работы в виде полноценного Windows-приложения.

Создание экранной формы

После запуска среды Visual Basic на экране появляется ряд отдельных окон и панелей (рис. 1), среди которых для нас важными являются:

– основная панель вверху экрана (главное меню и строка кнопок);

– панель инструментов (слева), содержащая кнопки для добавления на создаваемую экранную форму тех или иных объектов интерфейса;

– сама экранная форма – при открытии VB создается по умолчанию, для добавления новой экранной формы нужно воспользоваться кнопкой

– окно проекта (справа вверху), содержащее перечень созданных экранных форм и стандартных библиотек (если созданная экранная форма отсутствует на экране, ее окно можно раскрыть двойным щелчком мыши на соответствующей строке окна проекта);

12

Книги из серии:

Без серии

Комментарии:
Популярные книги

Назад в ссср 6

Дамиров Рафаэль
6. Курсант
Фантастика:
попаданцы
альтернативная история
6.00
рейтинг книги
Назад в ссср 6

Вечная Война. Книга VII

Винокуров Юрий
7. Вечная Война
Фантастика:
юмористическая фантастика
космическая фантастика
5.75
рейтинг книги
Вечная Война. Книга VII

Сиротка

Первухин Андрей Евгеньевич
1. Сиротка
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Сиротка

Мимик нового Мира 3

Северный Лис
2. Мимик!
Фантастика:
юмористическая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Мимик нового Мира 3

Убийца

Бубела Олег Николаевич
3. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.26
рейтинг книги
Убийца

Совок 4

Агарев Вадим
4. Совок
Фантастика:
попаданцы
альтернативная история
6.29
рейтинг книги
Совок 4

Довлатов. Сонный лекарь 2

Голд Джон
2. Не вывожу
Фантастика:
альтернативная история
аниме
5.00
рейтинг книги
Довлатов. Сонный лекарь 2

Наизнанку

Юнина Наталья
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Наизнанку

Последний попаданец

Зубов Константин
1. Последний попаданец
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Последний попаданец

Законы Рода. Том 6

Flow Ascold
6. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 6

Сильнейший ученик. Том 1

Ткачев Андрей Юрьевич
1. Пробуждение крови
Фантастика:
фэнтези
боевая фантастика
аниме
5.00
рейтинг книги
Сильнейший ученик. Том 1

Путь Шамана. Шаг 6: Все только начинается

Маханенко Василий Михайлович
6. Мир Барлионы
Фантастика:
фэнтези
рпг
попаданцы
9.14
рейтинг книги
Путь Шамана. Шаг 6: Все только начинается

Магия чистых душ

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.40
рейтинг книги
Магия чистых душ

Неверный

Тоцка Тала
Любовные романы:
современные любовные романы
5.50
рейтинг книги
Неверный