Машинная графика в школе на свободных библиотеках (Артем Проскурнев, OSEDUCONF-2021)

Материал из 0x1.tv

Докладчик
Артём Проскурнёв.jpg
Артём Проскурнёв

Школьники любят тему «Графика» на уроках информатики. Какую выбрать современную, свободную и кроссплатформенную графическую библиотеку, чтобы можно было начать с графических примитивов и научиться понимать, как работает машинная графика? Проблема всех современных библиотек заключается в написании большого количества громоздкого кода, чтобы всего лишь получить изображение простого отрезка на экране. Но теперь есть решение, которое позволяет рисовать простыми и понятными командами, вроде «Line», «PutPixel» и тому подобными. А главное для школы то, что исполняется такой код шаг за шагом, как и учит определение алгоритма из учебников информатики.


Видео

Презентация

Машинная графика в школе на свободных библиотеках (Артем Проскурнев, OSEDUCONF-2021).pdf Машинная графика в школе на свободных библиотеках (Артем Проскурнев, OSEDUCONF-2021).pdf Машинная графика в школе на свободных библиотеках (Артем Проскурнев, OSEDUCONF-2021).pdf Машинная графика в школе на свободных библиотеках (Артем Проскурнев, OSEDUCONF-2021).pdf Машинная графика в школе на свободных библиотеках (Артем Проскурнев, OSEDUCONF-2021).pdf Машинная графика в школе на свободных библиотеках (Артем Проскурнев, OSEDUCONF-2021).pdf Машинная графика в школе на свободных библиотеках (Артем Проскурнев, OSEDUCONF-2021).pdf Машинная графика в школе на свободных библиотеках (Артем Проскурнев, OSEDUCONF-2021).pdf Машинная графика в школе на свободных библиотеках (Артем Проскурнев, OSEDUCONF-2021).pdf Машинная графика в школе на свободных библиотеках (Артем Проскурнев, OSEDUCONF-2021).pdf Машинная графика в школе на свободных библиотеках (Артем Проскурнев, OSEDUCONF-2021).pdf Машинная графика в школе на свободных библиотеках (Артем Проскурнев, OSEDUCONF-2021).pdf Машинная графика в школе на свободных библиотеках (Артем Проскурнев, OSEDUCONF-2021).pdf Машинная графика в школе на свободных библиотеках (Артем Проскурнев, OSEDUCONF-2021).pdf Машинная графика в школе на свободных библиотеках (Артем Проскурнев, OSEDUCONF-2021).pdf Машинная графика в школе на свободных библиотеках (Артем Проскурнев, OSEDUCONF-2021).pdf

Thesis

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

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

Например, необходимо выполнить линейный алгоритм:

поставить точку
нажать клавишу
поставить точку
нажать клавишу
поставить точку

Школьник ожидает увидеть три точки после выполнения данного алгоритма.

Именно такая работа возможна с графикой в встроенных библиотеках на языках для обучения PascalABC и Кумир. Так же это реализовано и на блочном языке Scratch. Для тех школьников, которые изучают C++ или Python, такого решения не нашлось. Ставится задача найти такую современную, кроссплатформенную и обязательно свободную графическую библиотеку, которая будет работать, как предполагает концепция школьного преподавания программирования для языков C++ и Python.

К сожалению, очень хорошее решение от автора учебника Полякова Константина Юрьевича по Python не решает основного вопроса с отрисовкой без специальной функции обновления холста. На сайте не указывается лицензия, поэтому нельзя предполагать, что эта библиотека является свободной. Каждый графический элемент является отдельным объектом, и если рисовать график функции точками, то будет создано огромное количество объектов-точек. По этим причинам библиотека не решает поставленную задачу. Так же, первично желателен язык C++.

Идея вернуться к библиотекам времён DOS вроде Borland BGI Graphics emulation, возможно, имела бы право на жизнь, если бы все такие разработки не устарели до полной безнадёжности. Ну и, конечно, это For Windows Applications...

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

На текущий момент, на уроках информатики используется новая, созданная в начале 2021 года, библиотека qtSimpleGraph основанная на Qt5. Данная библиотека выпускается под свободной лицензией, под языки C++ и Python и эмулирует концепцию линейного рисования объектов в окне. Решение позволяет изучать машинную графику от самых основ. Первый графический примитив — точка позволяет показать как именно компьютер рисует все элементы на экране, «зажигая» конкретные пиксели конкретным цветом. Позволяет самостоятельно создать графический примитив «Линия» с использованием общего уравнения прямой и координат точек концов отрезка. Наглядно изучить определение окружности и многое другое.

В качестве лабораторных работ могут выступать простые игры типа «Змейка», «Танки», которые уже можно реализовать с использованием проекта qtSimpleGraph. Школьники с энтузиазмом изучают библиотеку и используют её для проектов по другим школьным предметам, чтобы визуализировать объекты исследования и процессы. Основы «движения» нарисованных объектов — стирание и перерисовка в новом месте очень важна для понимания детьми принципов работы компьютера. Ручные рассчёты, рисование и движение трёхмерных объектов, таких как тетраэдр или параллелепипед позволяют лучше понимать смежные предметы, такие как геометрию и тригонометрию.

В планах — создание методического пособия по проведению уроков на тему машинной графики от самых основ с использованием языков C++ и Python.

Машинная графика в школе на свободных библиотеках (Артем Проскурнев, OSEDUCONF-2021)!.jpg

Примечания и ссылки




Plays:0   Comments:0