Особенности функционального программирования интерактивных графических приложений

УДК 004.4

В.Б. Таранчук1

ОСОБЕННОСТИ ФУНКЦИОНАЛЬНОГО ПРОГРАММИРОВАНИЯ ИНТЕРАКТИВНЫХ ГРАФИЧЕСКИХ ПРИЛОЖЕНИЙ2

В статье обсуждаются методические и технические решения, которые существенно расширяют возможности создания электронных интеллектуальных образовательных ресурсов, содержащих математическую нотацию любого уровня сложности и графические иллюстрации всех типов и категорий. Поясняются базовые элементы программных модулей, ключевые конструкции кодов, функции и опции языка системы компьютерной алгебры Mathematica. Отмечены основные правила подготовки свободно распространяемых интерактивных программных приложений формата CDF. Приведены примеры из практики подготовки учебных материалов дисциплины "Компьютерная графика". Иллюстрируются пользовательский интерфейс и результаты выполнения программных модулей.

Ключевые слова: интерактивные образовательные ресурсы; система компьютерной алгебры Mathematica; формат вычисляемых документов; программное приложение; компьютерная графика.

Введение

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

В настоящей работе описаны основные возможности и рекомендации применения технологий компании Wolfram Research, в частности, системы компьютерной алгебры Mathematica и формата вычисляемых документов CDF для создания и сопровождения интеллектуальных обучающих систем; приведены примеры из практики подготовки интерактивных программных приложений, учебных материалов дисциплины "Компьютерная графика".

!© Таранчук В.Б., 2015

Таранчук Валерий Борисович (taranchuk@bsu.by), кафедра компьютерных технологий и систем, Белорусский государственный университет, 220030, Республика Беларусь, г. Минск, пр. Независимости, 4.

2Работа выполнена в рамках задания 1.5.02 ГПНИ "Конвергенция".

1. Базовый инструментарий

О системе Mathematica

В середине XX века на стыке математики и информатики возникло и интенсивно развивается фундаментальное научное направление "компьютерная алгебра" — наука об эффективных алгоритмах вычислений математических объектов. Направление "компьютерная алгебра" представлено теорией, технологиями, программными средствами. К прикладным результатам относят разработанные алгоритмы и программное обеспечение для решения с помощью компьютера задач, в которых исходные данные и результаты имеют вид математических выражений, формул.

Основным продуктом компьютерной алгебры стали программные системы компьютерной алгебры — СКА (Computer Algebra System, CAS).

Программных комплексов, выполняющих символьные вычисления, достаточно много; систематически выходят обновления и описания возможностей новых версий. С обзором СКА по состоянию на 2008 г. можно ознакомиться в книге [1], текущее состояние и основные функциональные возможности описаны в [2; 3]. Большинство СКА не только применимы для исследования различных математических и научно-технических задач, но и содержат все составляющие языков программирования — де факто являются проблемно ориентированными языками программирования высокого уровня. Широкое распространение в настоящее время имеют следующие СКА: Derive, Maxima, Axiom, Reduce, MuPAD, Mathcad. Особое место занимает система компьютерной математики MATLAB.

Лидерами СКА являются Mathematica и Maple — мощные системы с собственными ядрами символьных вычислений, оснащенные интеллектуальным пользовательским интерфейсом и обладающие широкими графическими и редакторскими возможностями. Эти две системы по факту являются кроме прочего интерактивными математическими энциклопедиями, в которых можно изучать описания, постановки задач, методы решения, выполнять упражнения.

Система компьютерной алгебры Mathematica компании Wolfram Research является одним из наиболее мощных и широко применяемых интегрированных интеллектуальных программных комплексов мультимедиа-технологии ([4]). В системе реализованы и доступны пользователям практически все возможности аналитических преобразований и численных расчетов, поддерживается работа с базами данных, графикой и звуком. Mathematica дает пользователю возможности анализировать, манипулировать, иллюстрировать графиками все функции чистой и прикладной математики. Система обеспечивает расчеты с любой заданной точностью; построение двух- и трехмерных графиков, их анимацию, формирование геометрических фигур; импорт, обработку, экспорт изображений, аудио и видео [3; 4].

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

Формат вычисляемых документов

Начиная с версии 8, пользователи Mathematica получили возможность создания интерактивных книг, отчетов, программных приложений в CDF-формате [5]. Такие документы с помощью бесплатной программы CDF Player можно свободно распространять и работать с ними, в том числе в виде веб-объектов всех популярных браузеров. CDF-документы можно создавать с инструментами интерактив-

ности (меню, кнопками, указателями, бегунками, динамическими локаторами), с возможностями представления результатов в математической нотации, визуализации шагов вычислений и иллюстрирования графиками всех типов (1D, 2D, 3D, анимация), импорта и экспорта результатов во все общепринятые форматы данных и графики. Реакцией на команды пользователя через инструменты интерактивности являются обеспечиваемое использованием встроенной вычислительной подсистемы формирование и обновление контента. В документах формата CDF можно размещать текст, таблицы, изображения, аудио и видео, предусмотрено также использование печатной верстки и технических обозначений. Если предварительно необходимое запрограммировать, сгенерировать в Mathematica, то можно выполнять аналитические преобразования, вычисления, импорт и экспорт данных, графическую визуализацию; поддерживаются компоновки документа с разбивкой на страницы, со структурной детализацией; режим слайд-шоу, разные способы формирования и просмотра результатов в режиме реального времени. Важно, что формат CDF делает набор математических выражений семантически точным. В дополнение к качественной верстке, пригодной для публикаций, формулу можно вводить полностью набранной типографским способом и использовать для вычислений, доступно также указание формата вывода результатов: математическая нотация, формат языка программирования. Оформление документа можно контролировать, используя каскадные таблицы стилей. Документ, первоначально созданный в одном стиле, можно преобразовать в множество форм: отчет, статья, учебник, презентация, инфографика или приложение. Mathematica предоставляет создателям документов несколько сотен опций для форматирования и стилистического оформления, возможно немедленное обновление стилей динамического и статического контента.

Проект Wolfram Demonstrations

Компанией Wolfram Research создан систематизированный каталог свободно распространяемых онлайновых интерактивных демонстраций программных приложений-проектов (Wolfram Demonstrations Project) [6], который регулярно обновляется. По состоянию на май 2015 г. в каталоге размещены и доступны посетителям сайта более 10105 демонстраций по разным разделам науки, техники, жизни. Целями проекта являются: демонстрация возможностей системы Mathematica; расширение круга пользователей разработок Wolfram; освоение приемов программирования в системе. Включенные в коллекцию модули с интерактивным интерфейсом динамически иллюстрируют решения задач, различные процессы и понятия в широком диапазоне областей: математика, естественные науки, техника, экономика и т. д.; охватывают различные уровни знаний от элементарной школьной математики до сложных тем, например, таких как квантовая механика или модели биологических организмов. Все включаемые в каталог демонстрационные примеры имеют непосредственно связанный с графикой или визуализацией пользовательский интерфейс, который динамически пересчитывается в ответ на такие действия пользователя, как передвижение ползунка, нажатие на кнопку или перетаскивание графического элемента ([7]). Каждая демонстрация имеет описание представляемой идеи. Все модули коллекции доступны для скачивания в формате системы Mathematica NB и формате вычисляемых документов CDF.

Примеры разработанных в Mathematica интерактивных документов

В [7; 8] описаны рекомендации применения системы Mathematica, формата вычисляемых документов CDF, модулей коллекции демонстрационных проектов компании Wolfram при создании свободно распространяемых электронных интерак-

тивных образовательных ресурсов. Примеры учебных материалов (в том числе размещенных в Интернете), в которых можно получать и иллюстрировать в диалоговом режиме решения типичных задач математических преобразований и вычислений, приведены в [8; 9].

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

2. Основные результаты

Компоненты учебных модулей

Основные компоненты, применяемые средства создания и сопровождения интерактивных программных приложений отметим на примерах подготовки электронных учебных материалов дисциплины "Компьютерная графика", преподаваемой студентам специальности "Прикладная информатика" на факультете прикладной математики и информатики БГУ. В [10] перечислены основные темы из программы этой дисциплины, перечни программных модулей из каталога [6], использование которых целесообразно для повышения степени усвоения материала.

Интерактивные электронные ресурсы при преподавании дисциплины используются на всех этапах: лекциях, практических занятиях, контролируемой самостоятельной работе, текущем контроле знаний, в итоговой диагностике результатов учебной деятельности, которая выполняется в формате компьютерного тестирования. Специфика преподавания предмета состоит в том, что в каждой теме изучается не только теоретический, но и требуется сопровождающий иллюстративный графический материал. В отдельных темах математическая составляющая достаточно сложная, поэтому важно иметь возможность делать выкладки и преобразования, причем в математической нотации, на персональном компьютере. Наглядность представления материала, возможность конструирования воображаемых моделей по их математическим описаниям — одно из необходимых требований для корректного понимания сути моделей и их описаний. Создание интерактивных, динамических графиков, поясняющих примеров-иллюстраций обычно предполагает сложные геометрические расчеты и аналитические преобразования. Подготовка соответствующих программных приложений не только требует специальных навыков, но и очень трудоемка. Система Mathematica предоставляет решение этой проблемы, в частности, через использование программных модулей Wolfram Demonstrations Project.

Отметим компоненты электронного учебно-методического комплекса; приведем и поясним основные составляющие интерактивных программных приложений, рекомендации, как их создавать и настраивать, используя систему Mathematica. Интерфейс и компоненты программных модулей поясним примерами электронных учебных материалов, которые предоставляются студентам при изучении темы "Геометрические преобразования в 2D и 3D. Матричное представление, композиция 3D преобразований". Изучение темы предполагает освоение математических основ компьютерной графики, причем для понимания теории и алгоритмов преобразований важно "на лету" упрощать выражения итоговых преобразований, получать и динамически манипулировать изображениями исходных и преобразованных объектов в пространстве.

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

Ф CG_p7(Le*t+ KSR+- pracjjjcdf - Wolfram CDF Player

4=t

File Edrt Window Help

щп Компьютерная графика

Таранчук Валерий Борисович X БГУ,

—- факультет прикладной математики и: информатики

Учебные материалы, инструкции и рекомендации, обучающие примеры и упражнения (оригинал документа создан и предоставляется студентам в формате ЙВ, электронная версия конспекта размещена на сайш www.cas.fpmi.bsu.by}

Содержание занятия 7, учебные материалы:

V Однородные координаты

V Двумерные и трехмерные преобразования

V Матрицы аффинных преобразований

V П опожител ь н о е вр а щение вокруг осей

V Задачаповоротаотно сител ь н о то ч ки

V Кон в ейер геометр ических пр еобр а зова н и й

V Рекомендуема я Л1ттер ату р а:

V Контролируемая самостоятельная работа

Рис. 2.1. Скриншот главного окна учебного модуля

Например, в модуле "Матрицы аффинных преобразований" (фрагмент показан на рис. 2.2) в следующих секциях после показанного примера обращения матрицы даны пояснения функций системы Mathematica: MatrixForm — вывод элементов одномерного или двумерного массива (списка) в матричном формате; Inverse, Transpose — обращение, транспонирование матрицы; Simplify — упрощение выражения. Эти функции представлены в виде упражнений, можно в выпадающих меню выбирать варианты, менять значения параметров, получать и просматривать результаты.

На рис. 2.2 в других модулях показаны фрагменты графических иллюстраций и результатов проверки правильности преобразований. Рассматривается задача получения итоговой матрицы преобразования. Решение состоит в выполнении четырех шагов: перенос и 3 поворота вокруг координатных осей (эскизы на рис. 2.2 в элементе "Конвейер геометрических преобразований") - эти шаги реализуются стандартными действиями применения соответствующих матриц.

Рис. 2.2. Фрагменты окон элементов учебного комплекса

В модуле после каждого шага выводятся графики (исходный, результат), а также рассчитываются и выводятся координаты точек. Так, на рис. 2.2 в элементе "Контроль координат после преобразований" показан пример вывода координаты точки Q3, которая после соответствующего шага преобразований должна оказаться на оси 0Z - первые 2 координаты нулевые.

По этой теме (как и по другим) кроме электронных интерактивных документов с теорией, пояснениями и иллюстрациями алгоритмов преобразований студентам для освоения и упражнений предлагается программный модуль, а именно и^е^ап&^ЗБК^айопК^!. Модуль адаптирован по оригиналу [11], в тексте приложения сделан перевод на русский, добавлены пояснения частей кода, уточнены начальный ракурс и масштаб просмотра, заменен подвергаемый преобразованиям исходный объект, предложен набор разных объектов для преобразований, показанный на рис. 2.3, расширены интервалы возможного перемещения объекта.

Рис. 2.3. Базовые графические примитивы, включенные в модуль

О программировании интерактивных графических приложений

На рис. 2.4 и 2.5 представлены скриншоты, иллюстрирующие кадры программного модуля. Инструменты приложения и^е^ап^^ЗВКсЛаНопИ, и пояснения составных частей сцены окна программы показаны на рис. 2.4; в кадры вывода на рис. 2.5 добавлены вставки фрагментов панелей со значениями параметров преобразований. На рис. 2.4 в левой части показаны элементы панели управления, справа - сцена. Сцена иллюстраций на рис. 2.4 и 2.5 включает следующее: окаймляющий куб с подписями и разметкой осей; исходный и преобразованный объекты; плоскость и ось поворотов.

Рис. 2.4. Вид панели управления, окна вывода с объектами сцены и результатом

В приведенных примерах показана сцена размера 10x10x10, начало координат в центре, положение наблюдателя (в условных единицах характерного размера сцены, который в примере равен 10) {1.8,-2.8,1.3}. Исходный объект - выпуклый трехмерный многогранник, объект высоты 3, в основании квадрат размера 3. Рисунок 2.4 иллюстрирует преобразование поворота на 180° вокруг оси 2, wz = 1, все другие параметры нулевые.

На иллюстрациях рис. 2.4, 2.5 изменение значений wx, wy, wz обеспечивает повороты, изменение рх, ру, pz - перемещение в соответствующем направлении,

Рис. 2.5. Фрагменты окон приложения с результатами применения преобразований

перемещений и поворотов

изменение © - задание итогового угла поворота исходного объекта вокруг назначенной оси (с учетом поворотов плоскости и сдвигов).

Два верхних кадра рис. 2.5 - иллюстрации преобразования поворота на 180° вокруг оси Z и перемещений. Левый кадр в верхнем ряду - перемещение в направлении X с px = —0.8, правый кадр - дополнительно к px = —1.1 еще и перемещение в направлении Y с py = —1.5; во всех примерах этой серии wz = 1, © = 180°, другие параметры нулевые. Важно отметить, что при формировании изображений автоматически отрабатывают алгоритмы отсечения, в правом кадре отсечены левая и передняя части итогового объекта. Преобразования поворотов в разных направлениях иллюстрируют изображения в нижнем ряду рис. 2.5.

В программном приложении можно интерактивно работать с результатами вывода. Каждое действие управления (поворот, перемещение) можно выполнять, за-

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

Ключевые функции и опции приложения Understanding3DRotationR В части оформления, настройки вида объектов сцены в упражнения включены пояснения:

• правил подготовки сопровождающих подписей (FormatType, BaseStyle, Style, TraditionalForm, StandardForm, FontFamily, FontSlant, FontSize, AxesStyle, LabelStyle, TicksStyle, GridLinesStyle, MeshStyle, BoundaryStyle, FillingStyle, ClippingStyle);

• способов задания толщины и типа линий (Thickness, AbsoluteThickness, Dashed, Dotted, DotDashed, Thick, Thin);

• вариантов задания цветов, прозрачности и имитации освещения (Colors, GrayLevel, RGBColor, CMYKColor, LABColor, ColorFunction , ColorFunctionScaling, Opacity, Lighting, Specularity);

• опций управления кадром вывода (ImageSize, PlotRegion, PlotRange, PlotRangeClipping, AspectRatio, BoxRatios, Scaled, BoxStyle).

Относительно применяемых в модуле функций преобразования RotationTransform, TranslationTransform дополнительно записаны пояснения и упражнения, чтобы студенты освоили функции системы AffineTransform, GeometricTransformation.

О настройке инструментов динамической интерактивности Наиболее часто в блокнотах Mathematica динамическая интерактивность, диалоговые окна, управление параметрами входных данных для вычислений (в том числе символьных), построение и просмотр графиков реализуются с использованием функции Manipulate. Соответствующий модуль Manipulate позволяет создавать различные интерактивные средства по заданному выражению expr с аргументами (параметрами), причем выражение expr трактуется в самом общем виде и может быть списком, включающим названия, математические выражения, графические функции и т. д. Особое внимание при пояснениях в представляемых студентам приложениях уделено вопросам программирования динамического вывода, использования инструментов интерактивности - примерами иллюстрируются функции и опции динамических вычислений, включения и выключения индикаторов, организации флажков, кнопок, иерархических и выпадающих меню, локаторов. Поясняются: Manipulate, Dynamic, Initialization, Delimiter, PopupMenu, Checkbox, CheckboxBar, RadioButtonBar, SetterBar, TogglerBar, ControlType, Locator, Slider, Slider2D, ColorSlider, SaveDefinitions, AutorunSequencing.

Опции поддержки динамической интерактивности в CDF-документах При подготовке блокнотов в Mathematica, если предполагается их сохранение, просмотр в CDF-Player, следует выполнять инициализацию (Initialization:->) или сохранить параметры для анимации (SaveDefinitions). Это обязательно, т. к. CDF Player не может загружать пользовательские данные во время работы. Допустима работа только с теми списками, комплектами, наборами, которые включены в базу знаний, т. е. вся используемая функцией Manipulate информация должна была встроена в интерактивные элементы .cdf файла.

Выводы

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

Литература

[1] Дьяконов В.П. Энциклопедия компьютерной алгебры. М.: ДМК Пресс, 2009. 1264 с.

[2] List of computer algebra systems. URL: en.wikipedia.org/wiki/List_of_computer algebra_systems.

[3] Таранчук В.Б. Основные функции систем компьютерной алгебры: пособие для студентов фак. прикладной математики и информатики. Минск: БГУ, 2013. 59 с.

[4] WOLFRAM MATHEMATICA. Наиболее полная система для современных технических вычислений в мире. URL: http://www.wolfram.com/mathematica.

[5] CDF. Формат вычисляемых документов - Документы оживают благодаря возможностям вычислений. URL: http://www.wolfram.com/cdf.

[6] Wolfram Demonstrations Project. URL: http://demonstrations.wolfram.com.

[7] Таранчук В.Б. О создании интерактивных образовательных ресурсов с использованием технологий Wolfram // Информатизация образования. 2014. № 1. С. 78-89.

[8] Таранчук В.Б. О применении Wolfram Mathematica при создании электронных образовательных ресурсов // Весщ БДПУ. Сер. 3. Физика, Математика, Информатика. 2014. № 2. С. 57-62.

[9] Таранчук В.Б. О применении технологии вычисляемых документов Wolfram при создании электронных образовательных ресурсов // Вести Института современных знаний. 2014. № 3 (60). С. 102-109.

[10] Таранчук В.Б., Кулинкович В.А. Особенности подготовки и использования электронных ресурсов при преподавании компьютерной графики // Информатизация образования — 2014: педагогические аспекты создания и функционирования виртуальной образовательной среды : материалы междунар. науч. конф. (г. Минск, 22-25 окт. 2014 г.) Минск, 2014. С. 380-384.

[11] Understanding 3D Rotation. URL: http://demonstrations.wolfram.com/Understanding 3DRotation.

References

[1] Dyakonov V.P. Encyclopedia of computer algebra. M., DMK Press, 2009, 1264 p. [in Russian].

[2] List of computer algebra systems. Retrieved from: en.wikipedia.org/wiki/List_of_computer algebra_systems. [in English].

[3] Taranchuk V.B. Basic functions of computer algebra systems: manual for students of the Faculty of Applied Mathematics and Informatics. Minsk, BGU, 2013, 59 p. [in Russian].

[4] WOLFRAM MATHEMATICA. The most complete system for modern technical computing in the world. Retrieved from: http://www.wolfram.com/mathematica [in Russian].

[5] CDF. Computable Document Format — Documents come alive thanks to the possibility of computing. Retrieved from: http://www.wolfram.com/cdf. [in Russian].

[6] Wolfram Demonstrations Project. Retrieved from: http://demonstrations.wolfram.com. [in English].

[7] Taranchuk V.B. On the creation of interactive educational resources using technologies of Wolfram. Informatizatsiia obrazovaniia [Informatization of education], 2014, no. 1, pp. 78-89 [in Russian].

[8] Taranchuk V.B. On application of Wolfram Mathematica to create electronic educational resources. Весщ, БДПУ. Серия 3, Физика, Математика, Информа- тика [Vestsi of BSPU. Series 3, Physics, Mathematics, Computer Science]. 2014. № 2. P. 57-62 [in Russian].

[9] Taranchuk V.B. On application of Wolfram Computable Document technology to create electronic educational resources. [News of an Institute of Modern Knowledge], 2014, no. 3(60), pp. 102-109 [in Russian].

[10] Taranchuk V.B., Kulinkovich V.A. Features of preparation and use of electronic resources in the teaching of computer graphics. Informatizatsiia obrazovaniia — 2014: pedagogicheskie aspekty sozdaniia i funktsionirovaniia virtual'noi obrazovatel'noi sredy: materialy mezhdunar. nauch. konf., g. Minsk, 22-25 okt. 2014 g. [Informatization of education —2014: pedagogical aspects of creation and functioning of virtual educational environment: proceedings of the International scientific conference, Minsk, 22-25 October, 2014]. Minsk, 2014, pp. 380-384 [in Russian].

[11] Understanding 3D Rotation. Retrieved from: http://demonstrations.wolfram.com/Understanding 3DRotation [In English].

V.B. Taranchuk3

FEATURES OF FUNCTIONAL PROGRAMMING OF INTERACTIVE GRAPHICAL APPLICATIONS

In the article methodical and technical solutions which essentially expand capabilities of creation of the electronic intelligent educational resources containing mathematical notation of any level of complexity and graphics illustrations of all types and categories are discussed. Base units of program modules, key constructions of codes, functions and options of language of the system of computer algebra Mathematica are explained. Main rules of preparation of freely distributed interactive program applications of CDF format are noted. Examples from practice of preparation of teaching materials of discipline "Computer Graphics" are given. User interface and results of execution of program modules are illustrated.

Key words: interactive educational resources; computer algebra system Mathematica; Computable Document Format; application program; computer graphics.

Статья поступила в редакцию 3/VT/2015. The article received 3/VT/2015.

3Taranchuk Valery Borisovich (taranchuk@bsu.by), Department of Computer Applications and Systems, Belarussian State University, 4, Nezavisimosti Avenue, Minsk, 220030, Belarus.