ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ. МАТЕМАТИЧЕСКОЕ И КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ
УДК 004.4
Д. В. Баяндин
НАЧАЛА КОМПЬЮТЕРНОГО МОДЕЛИРОВАНИЯ В ИНСТРУМЕНТАЛЬНОЙ СИСТЕМЕ 8ТЯАТиМ-2000
Система $1таЫт-2000 представляет собой инструментальную среду визуального проектирования и математического моделирования, ориентированную на конечного пользователя. Одной из важнейших сфер использования продукта является среднее и высшее образование, где данная система используется как в качестве средства разработки электронных учебных пособий, так и в качестве среды их функционирования. Кроме того, &таШт-2000 может играть в средней школе и в вузе роль базового программного продукта для реализации интегрированных учебных курсов, направленных на совместное решение задач, например, физики и информатики или информатики и педагогики средствами компьютерного моделирования. В статье представлены методические материалы, предназначенные для использования на начальном этапе обучения пользователей работе в инструментальной среде &таЫт-2000.
Ключевые слова : математическое и компьютерное моделирование, педагогические инструментальные средства, обучающие среды, элективные курсы.
Компьютерная среда 81га1ит-2000, созданная под руководством О. И. Мухина (Институт инновационных технологий, г. Пермь), предназначена для имитационного и математического моделирования и позволяет решать широкий круг научных, производственно-технологических и учебных задач путем их визуального проектирования на основе моделей объектов, явлений, эффектов и свойств, содержащихся в тематических библиотеках, которые допускают их неограниченное пополнение самим пользователем, с последующим управлением моделями и наглядным представлением результатов расчета. Использование объектно-ориентированного и модельного подхода позволяет «свести к минимуму ручное программирование, повысить скорость создания программных систем, легко модифицировать их в дальнейшем, отслеживать эволюцию идей» [6]. На базе библиотек моделей реализуется оперативное проектирование виртуального мира.
Эффективное применение среды Stratum-2000 возможно в таких областях, как автоматизированные системы управления, системы управления натурными объектами и технологическими процессами, системы научных исследований, геоинформационные системы, разработка информационных систем с архитектурой клиент-сервер, анализ бизнес-процессов, планиро-
© Баяндин Д.В., 2015
вание в многофакторных системах, принятие тактических и стратегических решений, обучающие системы.
Концепция программного продукта и его применения в сфере образования изложена его разработчиком, например, в работе [6]. За годы использования Stratum в качестве педагогического инструментального средства сотрудниками Института инновационных технологий (ИИТ) разработаны электронные пособия для среднего образования по математике, информатике, физике, химии, биологии, географии, технологии, русскому и английскому языкам, для начальной школы, ряд электронных курсов для поддержки высшего образования. Выпущен совместный с ООО «1С» образовательный продукт «Библиотека наглядных пособий по физике. 7-11 классы» (ред. Н. К. Ханнанов).
Система Stratum-2000 в течение шести лет использовалась в Пермском областном ИПКРО в качестве базового программного продукта при проведении курсов повышения квалификации и стажировок, связанных с информатизацией обучения.
В 2006-2008 гг. ИИТ принимал участие в реализации проекта «Информатизация системы образования» Национального фонда подготовки кадров. На основе системы Stratum-2000 были разработаны инновационные учебно-методические комплексы (ИУМК) и информационные источники сложной структуры (ИИСС) по ряду школьных дисциплин. Успешная апробация продуктов прошла в школах многих городов Российской Федерации. Объекты, составляющие эти ИУМК и ИИСС, представлены в Единой коллекции цифровых образовательных ресурсов (http://school-collection.edu.ru/).
В качестве примера разработанного на базе Stratum образовательного продукта можно привести учебную среду «Интер@ктивная физика» (до 2006 года - «Виртуальная физика») [1, 3, 5], которая содержит около полутора тысяч виртуальных учебных объектов различных типов и в течение многих лет используется в учебном процессе школ и вузов Пермского края, других регионов России и Казахстана. Период широкой и регулярной эксплуатации этого продукта начался с 2012 г., когда Министерство образования и науки Пермского края реализовало проект «Виртуальная физическая лаборатория», в рамках которого в 650 школ региона были поставлены мобильные компьютерные классы для оснащения ими кабинетов физики в комплекте с двумя программными продуктами - «Виртуальная физическая лаборатория» издательства «Дрофа» и «Интер@ктивная физика» Института инновационных технологий. С целью создания условий, благоприятных для внедрения в учебный процесс технологий электронного обучения, в следующие три года (2013-2015) сотрудниками ИИТ под эгидой педагогического университета проводились массовые курсы повышения квалификации, на которых технологиям и методикам, заложенным в образовательный продукт, было обучено около 500 учителей физики края. Особое внимание уделялось вопросам использования технологий компьютерного моделирования при различных формах занятий и организации индивидуальной работы учащихся с интерактивными заданиями и тренажерами.
Более десятка лет система Stratum-2000 используется для ведения интегрированных элективных курсов в средней школе (например, курса «Компьютерное моделирование физических процессов», программа которого представлены в работе [2]), обеспечения курса «Технологии разработки электронных учебных материалов» при обучении студентов по профилю «Ин-
формационные технологии в образовании» направления подготовки 230400.62 «Информационные системы и технологии» физического факультета Пермского государственного гуманитарно-педагогического университета, а также курса «Технологии электронного обучения» магистерской программы «Естественнонаучное образование» математического факультета того же вуза.
Автором статьи разработаны методические материалы, представляющие собой серию упражнений, предназначенные для их использования на начальном этапе обучения пользователей работе в инструментальной среде Stratum-2000. Потребительские свойства этих материалов таковы, что они одинаково успешно применяются при обучении старшеклассников, студентов и преподавателей школ и вузов, поскольку рассчитаны в том числе на потребителей с небольшим опытом работы на компьютере. Описание первых упражнений весьма подробно, но по мере накопления пользователем умений, текст становится все более лаконичным. После освоения «первых шагов» предполагается выполнение обучающимися более сложных индивидуальных заданий.
Ниже излагается содержание описанных методических материалов с иллюстрацией некоторых упражнений скриншотами проектов, выполненных школьниками.
Первые шаги Создание проектов. Основные понятия и элементы.
Графика. Имиджи. Управление. Модель
Упражнение 1. Самое начало
1. Загрузите Stratum-2000, кликнув на иконке на рабочем столе или через меню Пуск. Рассмотрите панели инструментов: «Управление» (по умолчанию вверху - слева), «Рисование» (вверху - справа), «Стандартная» (слева) (рис. 1). Есть ряд других панелей, но пока этого достаточно. Большинство кнопок неактивно, поскольку не загружен проект.
2. Создайте новый проект. Для этого на панели «Стандартная» нажмите кнопку «Быстрое создание нового проекта» (выглядит как соответствующая кнопка в MS Word). Появляется чистый лист, на котором можно творить схему проекта.
3. Что может содержать схема? По большому счету, два вида объектов: 1) графические или текстовые объекты; 2) имиджи. Stratum оперирует с объектами; он является объектно-ориентированной системой.
Упражнение 2. Графические и текстовые объекты
1. Используйте ранее созданный проект и лист.
2. Графические и текстовые объекты можно назвать «глупыми», так как они не способны управлять собой и другими объектами, наоборот - другие могут ими командовать. Графические объекты создаются и модифицируются при помощи кнопок панели «Рисование»: «линия», «полилиния», «прямоугольник», «скругленный прямоугольник», «окружность» (круг, эллипс), «дуга» (сектор). Текстовые объекты создаются кнопкой «текст» (любые символы в любом количестве, любого цвета, различных стилей).
Рис. 1. Панели инструментов системы Stratum (положение по умолчанию)
3. Создайте на листе схемы каждый из этих объектов со свойствами по умолчанию. Для этого кликните на соответствующей кнопке мышкой, затем нажмите на схеме ЛКМ (левую клавишу мыши) и перемещайте мышь. Когда ЛКМ будет отпущена, построение объекта закончится. Но его всегда можно будет изменить. Объект «текст» создается с содержимым «sample text», затем он может модифицироваться.
4. Каждый объект имеет свойства, отраженные в его закладках. Познакомьтесь с основными закладками: «положение», «линия», «заливка». Чтобы открыть свойства объекта, нажмите на нем ПКМ (правую клавишу мыши) и в открывшемся меню выберите верхнюю строку «Свойства» (то же можно получить, дважды нажав на объекте ЛКМ). Обратите внимание на: координаты, размеры, угол (закладка «положение»), цвет и толщину линии (закладка «линия»), цвет заливки (закладка «заливка»). У текстовых объектов можно менять размеры, стиль, цвет символов и цвет фона.
5. Чтобы выполнение пункта 4 не было слишком скучным, нарисуйте в ходе его выполнения какую-нибудь картинку, например, цветастый домик с вывеской «Казино», солнце, деревья и автомобили вокруг. Не хотите домик? Рисуйте, что хотите. Малюйте с воодушевлением, заодно освоите этот нехитрый графический редактор. Все это со временем начнет бегать и прыгать. Будет еще и весело.
6. Еще некоторые возможности при работе с графическими объектами:
а) их можно масштабировать: для этого нужно выделить (иначе - выбрать) объект при помощи ЛКМ и растянуть его за углы или стороны;
б) если нажать на графическом объекте ПКМ и выбрать строку «Редактировать точки», то, например, из прямоугольника можно сделать трапецию или неправильный четырехуголь-
ник. Если часть точек, образующих границу круга, отодвинуть от его центра, получится «солнце с лучиками»;
в) количество точек в контуре объектов можно изменять: увеличивать (выделение + Shift + «потянуть» ЛКМ за границу) и уменьшать (выделение + Ctrl + щелкнуть ЛКМ на лишней точке);
г) объекты можно копировать: нажать на клавиатуре и держать клавишу Ctrl + нажать на объекте ЛКМ и, не отпуская ее, сдвинуть мышь;
д) объекты можно уничтожать: выделить (выбрать) объект и нажать на клавиатуре клавишу Delete;
е) объекты можно объединять в группы (выделение + кнопка G панели «Рисование»);
ж) группы можно копировать и удалять так же, как и отдельные объекты.
7. Удостоверьтесь, что объекты умеют заслонять друг друга. Чтобы «переставить» слои изображения, нужно изменить Z-порядок (Z - перпендикулярная экрану координатная ось). Для этого нажмите на объекте ПКМ и выберите строку «Z-порядок».
8. Проект можно сохранить, нажав на панели «Стандартная» кнопку «Записать все изменения» (иначе: в главном меню выбрать «Файл», строка «Сохранить все»).
Упражнение 3. Имиджи: первая серия «мыльной оперы»
1. Используйте ранее созданный проект и лист.
2. Имиджи - это тоже объекты, но в отличие от графических и текстовых их можно назвать «умными» объектами, так как они «осознают себя» в схеме, могут двигаться и вообще меняться сами и способны управлять другими имиджами и объектами. Именно благодаря им проект оживает. Это возможно потому, что имиджи несут в себе модель - уравнения, которые описывают поведение объектов.
3. Имиджи условно делятся на системные и пользовательские.
4. Системные имиджи созданы разработчиками Stratum'a. Они обеспечивают базовые операции: создание окон, управление параметрами и отображение их значений, движение объектов и многое другое. Они хранятся в системных библиотеках и готовы к использованию. Мы будем знакомиться с ними постепенно.
5. Пользователь может создать свои имиджи. Для этого нужно нажать на панели «Рисование» кнопку «Создать и вставить новый имидж». Сделайте это. Убедитесь, что имидж, как и графический объект, обладает множеством свойств (см. закладки). Закладка «текст» может содержать уравнения модели; в закладке «переменные» можно задавать значения параметров модели. Пока создавать свой имидж рановато. Уничтожьте его аналогично п. 6д упражнения 2. Вернемся к имиджам системным.
6. Познакомимся с имиджем LGSpace. Его функция - создание графического пространства (окна), в котором проект будет «жить». Созданный нами ранее проект «неживой». Попробуйте нажать на кнопку «Запуск» панели управления. Ну как? Ничего не происходит. А надо чтобы происходило, иначе - какое моделирование?
Имидж LGSpace хранится в системной библиотеке UNIT. Чтобы вставить его в схему, следует нажать на листе (не на объекте) ПКМ и выбрать строку «Вставить имидж из библиоте-
ки». При этом открывается перечень системных библиотек. Кликните дважды ЛКМ на имени библиотеки UNIT, тут она и откроется (сколько тут всякого добра, а?). Найдите имидж LGSpace (он в третьем столбце) и вновь кликните дважды ЛКМ на нем. Он появится в схеме, на листе нашего проекта. Снова нажмите на кнопку «Запуск». Что изменилось? Создалось окно Main Window, новое графическое пространство, в котором и будет в дальнейшем разворачиваться сюжет нашей «мыльной оперы». Между прочим, уже идет расчет этого сюжета, хотя и считать пока нечего. Чтобы остановить расчет, нажмите кнопку «Стоп» панели управления. Окно Main Window пропало.
7. Если на вашей схеме сейчас имеется несколько достаточно крупных графических объектов, возможно, при открытии Main Window часть из них в окно не вошла. Но сюжет должен разворачиваться на сцене, а не за кулисами. Значит, нужно организовать сцену. То есть нужно, чтобы окно открывалось не как попало, а правильно. Реализуем пока самый простой вариант. Создайте еще один прямоугольник, достаточно большой, чтоб покрыть все объекты. Измените его Z-порядок, поместите назад. Теперь дайте ему имя («Свойства объекта», закладка «Положение») - например, «фон». Вот на этом фоне и будет развиваться сюжет. Нужно, правда, сделать еще вот что: сообщить имиджу LGSpace имя объекта, по которому следует открывать окно («Свойства имиджа», закладка «Переменные», столбец «данные», строка переменной ObjectName - имя объекта). Снова нажмите на кнопку «Запуск». Теперь окно открылось по объекту «фон». Еще лучше, чтобы окно открывалось в левом верхнем углу экрана; для этого задайте в LGSpace значения переменных x=1 и y=1 - координаты окна на экране.
8. Имидж LGSpace прямо на сцене не нужен, вынесите его за пределы фона (скажем, установите у левого верхнего угла этого объекта). Теперь проект стоит сохранить (см. п. 8 упражнения 2).
Упражнение 4. Имиджи: слайд-фильм. Гиперссылки
1. Используйте ранее созданный проект и лист.
2. Будем считать схему на этом листе первым кадром слайд-фильма, который мы создаем. Теперь, чтобы организовать слайд-фильм, нужно решить две проблемы: а) где размещать множество кадров? и б) как переходить с одного кадра на другой?
3. На одном листе размещать много кадров неудобно. А несколько листов в одном проекте нам могут дать имиджи (пока совсем простые, без уравнений, просто «дополнительное жизненное пространство»). Итак, создайте новый имидж (упражнение 3, пункт 5) и назовите его («Свойства», закладка «Основное»), скажем, Кадр_1, нажмите ОК. Теперь передвиньте имидж Кадр_1 за пределы «фона», поближе к LGSpace.
4. Имидж может иметь подсхему - «нутро», это позволяет создавать иерархически организованные проекты. Нажмите ПКМ на имидже Кадр_1 и выберите строку «Создать схему», подтвердите «Да». Ну вот и создан еще один лист. Теперь давайте перетащим сюда всю сцену, то есть все графические объекты с первого листа - главной схемы. Для этого мышью выделите все объекты вместе с фоном (но без имиджей), заберите в буфер (Shift+Delete) и вставьте на новый лист (перейдите на него, нажмите ПКМ и выберите строку «Вставить»; иначе -Shift+Insert).
5. На основном листе остались только имиджи. И прекрасно, незачем загромождать главную схему всякими частностями.
6. Попробуйте запустить схему на счет. Окно не возникает. И правильно, ведь объекта «фон», по которому LGSpace открывает окно, в главной схеме нет. Нужно откорректировать переменные имиджа LGSpace: значение переменной ObjectName стереть, зато записать в строку переменной ClassName (имя имиджа, иначе - класса) значение Кадр_1. (Это второй способ открыть окно - не по графическому объекту в той же схеме, а по содержимому имиджа.) Теперь при запуске схемы окно откроется. Но не правильно, а как попало, мимо фона. Чтобы снова все стало правильно, нужно настроить свойства листа (иначе - окна) подсхемы имиджа. На чистой части листа (не на объектах) нажмите ПКМ и выберите строку «Параметры листа», закладка «Окно», щелкните ЛКМ в боксах «по размеру пространства» и «автоматическое определение начала». Теперь окно будет открываться аккуратно.
7. Итак, мы получили схему слайд-фильма - пока из одного кадра. Но вот теперь-то размножить «слайды» и сделать длинный и ветвистый фильм уже совсем несложно.
8. Создайте имиджи Кадр_2, Кадр_3, и так далее. Создайте у них подсхемы. Перекопируйте в эти подсхемы содержимое подсхемы имиджа Кадр_1. Теперь внесите в новые кадры небольшие изменения: пусть от кадра к кадру меряется цвет или координата объектов, появляются новые объекты. Настройте параметры листа в окнах подсхем.
9. Главная схема снова стала сложной, она отражает структуру проекта. А имидж, как оказалось, является структурной единицей проекта.
10. Теперь главное: нужно организовать гиперссылки с кадра на кадр, сделать кнопки переходов. Кнопкой может быть любой графический, текстовый объект или имидж - у всех у них есть в «Свойствах» закладка «Гипербаза». Но для первого раза лучше использовать кнопку привычного вида - небольшой прямоугольник или круг. Нарисуйте ее в кадре 1 и скопируйте (лучше на то же место) во все следующие кадры.
11. Чтобы сделать гиперссылку с кадра 1 на кадр 2, нажмите дважды ЛКМ на кнопке, выберите закладку «Гипербаза», щелкните ЛКМ в окошке «Используется», затем в строке «Класс или файл» впишите имя имиджа, содержащего второй кадр (то есть Кадр_2). Аналогично организуйте переходы на следующие кадры, а с последнего - переход на первый. Запустите проект. Теперь этот фильм можно смотреть вечно.
12. Теперь организуйте не линейный фильм, а ветвящийся. Любой объект может быть кнопкой, отсылающей нас на самые разные кадры. Только не запутайтесь сами.
13. Окна в Stratum'e бывают разного типа (или стиля). Часто полезны всплывающие окна. Вставьте в один из кадров новый имидж, создайте его подсхему и нарисуйте там маленький прямоугольник фона (и может быть текстовый объект). В параметрах листа подсхемы, закладка «окно» укажите его стиль - всплывающее окно. Теперь поставьте на этот имидж (в схеме кадра) гиперссылку на него самого (то есть его подсхему). Запустите схему, посмотрите, как выглядит всплывающее окно. Не правда ли, в комиксах примерно так оформляют реплики героев?
14. Кстати о комиксах. Имидж совсем не обязательно имеет на схеме вид шестеренки. Нажмите на последнем созданном имидже ПКМ и выберите строку «Редактировать изображение». На появившемся листе можете изобразить любые графические объекты (или вставить би-
товые карты) - например, Винни-Пуха. При нажатии на кнопку - изображение Винни-Пуха -около него будет появляться всплывающее окно, например, с текстом «Мишка очень любит мед...».
15. А теперь дайте волю фантазии и постройте разветвленный слайд-фильм с окнами разного стиля, кнопками из графических, текстовых объектов или имиджей и пусть «закоулков» там будет столько, чтобы какой-нибудь приз не так просто было найти. Предложим варианты «фильмов»:
а) «как бы» тест: в одном окне - вопрос и три ответа, при нажатии на ответы всплывают комментарии типа «А ты в этом уверен?» или «Иди поучись!», кроме того, здесь же ссылка на кадр со следующим по порядку вопросом, и так далее (довольно забавно может получиться, если не лениться);
б) дворец со многими комнатами, в каждой чудеса и ужасы, а также переходы в другие комнаты - с подарками и врагами; вот научимся строить модель, можно будет считать набранные очки или терять «жизни».
P.S. Объект «фон» удобно сделать невыбираемым объектом (ПКМ, «Свойства», закладка «Положение») - чтобы не сдвигать его случайно при работе.
P.P.S. Главная схема одновременно является «содержимым» имиджа более высокого уровня. Его имя пишется в заглавной строке окна. Хотите, чтобы окно называлось не Root_19a6_bb или в этом духе, а, например, «Звездные_войны» (пробелы не допускаются)? Щелкните ЛКМ на листе (мимо объектов), выберите строку «Свойства этого имиджа», закладку «Основное» и в строке «Имя класса» измените имя своей схемы, нажмите ОК. Видите, заглавная строка окна изменилась.
Резюме по упражнению. Итак, проект - это иерархия имиджей. То есть имиджи могут быть вложены друг в друга, как матрешки, одна в другую (с той разницей, что имиджей в подсхеме имиджа более высокого уровня может быть сколько угодно). Уровней вложенности («этажей») в проекте тоже может быть сколько угодно. И сам проект в качестве имиджа может быть впоследствии использован в других проектах.
Упражнение 5. Имиджи: прямое управление движением графических объектов
1. Создайте новый проект. В этот раз будет достаточно одного листа главной схемы. Создайте фон, пусть по нему открывается окно (1-й способ, описанный в упражнении 3, п. 6-7), в котором будут жить и двигаться графические объекты (3 штуки, не больше). Например, постройте светло-голубой прямоугольник («небо»), на нем желтый эллипс («солнце», пусть сплюснутое), а ниже «неба» зеленый прямоугольник («трава») (рис. 2). Всем объектам не забудьте дать имена, чтобы их можно было «окликать» по этим именам. «Фон» откликается на обращение имиджа LGSpace «Открыть окно!». Другие объекты будут откликаться на приказы совершать те или иные движения.
2. Кто же будет командовать объектами? Познакомимся со вторым системным имиджем: он расположен в системной библиотеке GRAPH2D, его имя Object2D - обеспечивает движение двумерного графического объекта под действием рычагов управления или имиджа, содержащего математическую модель (как вставить имидж в проект из библиотеки - см. упражнение 3,
п. 6). Для каждого графического объекта, которым мы хотим управлять, нужен свой имидж Object2D, причем имидж должен знать, каким объектом он управляет («Свойства имиджа», закладка «Переменные», столбец «данные», строка переменной ObjectName - имя объекта).
3. Теперь рассмотрите список переменных имиджа Object2D. Вы увидите, какими параметрами графического объекта он может командовать: координатами x и y, размерами (шириной Width и высотой Height), углом поворота angle вокруг заданной точки и координатами этой точки x0 и y0, Z-порядком (кто кого заслоняет) и т. д. Итак, один Object2D управляет всеми параметрами графического объекта; но каждому графическому объекту нужен свой отдельный Object2D.
4. Имидж Object2D «командует» объектами. Так ли это? Не совсем. Точнее будет сказать, что он передает (доводит до сведения) объекта поступившие команды. Тогда остается два вопроса: 1) кто же все-таки командует объектами (их параметрами)? и 2) каким образом Object2D узнает об этих командах?
5. Ответ на вопрос 1. Командовать любыми переменными (параметрами) могут:
а) управляющие системные имиджи (этому посвящено данное упражнение); б) математическая модель, содержащаяся в одном из пользовательских имиджей (об этом - в упражнении 6). Так или иначе, в конечном счете объектами (и имиджами тоже) командуют специальные имиджи. На то они и «умные» объекты (см. упражнение 3, п.2-4).
6. Познакомимся с одним из управляющих системных имиджей, слайдером: он расположен в системной библиотеке CONTROLS, представляет собой рычаг управления, ползунок (HSlider, HSlider1, VSlider, VSlider1). Предназначен для прямого управления параметрами объектов (как графических, так и имиджей). Вставьте в свою схему по одному HSlider1 и VSlider1 (они отличаются только визуально).
Рис. 2. К упражнению 5: прямое управление графическими объектами
Откройте список переменных и ознакомьтесь с ним. Главная величина здесь - имя управляемой переменной Value, значение которой визуально связано с положением ползунка. В дальнейшем для управления нужно будет также настроить допустимые пределы изменения Value - переменные Min и Max.
7. Ответ на вопрос 2. Самый простой способ передачи информации от одного имиджа к другому - по информационной связи. Чтобы провести связь, нужно щелкнуть ЛКМ на панели «Рисование», кнопка «Проведение связи», нажать ЛКМ на одном имидже и, не отпуская ЛКМ, тянуть связь до другого имиджа. Когда кнопку отпускаем на втором имидже, возникает окно связи. Нажмите кнопку «Добавить» и свяжите нужные пары переменных, выбрав их из списков переменных в левой и правой частях окна.
8. Действуйте: свяжите переменную Value имиджа Hslider1 с переменной x имиджа Object2D, который отвечает у вас за объект «эллипс». Затем переменную Value имиджа Vslider1 свяжите с переменной y того же имиджа Object2D. Попробуйте запустить проект на выполнение и «пошевелить» слайдеры. Скорее всего, эллипс тут же исчезнет за пределами окна или «дернется» в сторону и больше не захочет двигаться. Это происходит из-за неподходящих значений переменных Min и Max.
9. Чтобы установить удобные для управления значения Min и Max, сделайте следующее. В нижней части окна Stratum'a располагается Строка состояния проекта (главное меню - Вид -Строка состояния). Ближе к правому краю в ней отображаются значения координат x и y курсора мыши (ось y направлена сверху вниз). Подведите мышь к точке, левее которой ваш объект смещать не планируется (левая граница фона, например), запомните значение первой (x-й) координаты и занесите его в строку переменной Min имиджа Hslider1. Так же задайте значение Max (имейте в виду, что положение объекта определяется координатами его левого верхнего угла). Так же задайте значения Min и Max для Vslider1 (не забудьте, что ось y перевернута). Теперь «эллипс» будет послушно двигаться по горизонтали и вертикали. Поставьте еще один слайдер для управления x-координатой прямоугольника.
10. Установите на схеме еще один слайдер и свяжите его, например, с переменной Height (высота объекта) имиджа Object2D. Объект будет забавно распухать или ужиматься по вашему желанию.
11. А не запутаемся ли мы теперь во многих слайдерах? Этого не произойдет, если подписать, какой из них за что отвечает. Используйте для этого объекты «текст» (x-координата, y-координата) и пиктограммы (мелкие значки) эллипса и прямоугольника. А лучше всего выделить для слайдеров отдельный уголок на схеме (в пределах того же «фона»; можно и отдельное окно «Пульт управления» завести, но это сложнее).
12. Еще одна интересная для управления величина - переменная angle имиджа Object2D. Пределы управляющего ею слайдера установите -1 и +1 (радиан). Обратите внимание, что при вращении объекта ползунки, ответственные за координаты x и y этого объекта «сами двигаются», то есть они следят за положением объекта. По умолчанию вращение будет происходить вокруг точки листа с координатами (0; 0) - обычно это верхний левый угол окна.
13. Если хотите заставить объект вращаться вокруг его центра, задайте соответствующие значения переменных x0 и y0. Забавно будет заставить вращаться эллипс относительно угла
прямоугольника, который может двигаться. Для этого подайте по связи значения x и y с Object2D прямоугольника на переменные x0 и y0 имиджа эллипса.
14. Имидж слайдера не всегда удобен тем, что числовое значение Value остается «невидимым». Чтобы устранить это неудобство, в паре со слайдером можно ставить еще один имидж, вьювер (системная библиотека CONTROLS, имидж NumberView), предназначенный для числового отображения информации. Чтобы вьювер показывал значение Value, которым управляет слайдер, между ними нужно провести связь. Попробуйте установить вьювер на переменную angle имиджа Object2D. Теперь вы управляете не вслепую. Естественно, вьювер можно использовать и независимо - для визуализации значений любых расчетных величин.
15. «Связке» слайдер-вьювер есть альтернатива - имидж ступенчатого переключателя (системная библиотека CONTROLS, имидж Numberln), предназначенный для управления и отображения числовой информации. Справа от окошка, похожего на вьювер, расположены кнопки «увеличить»-«уменьшить» (шаг изменения Step устанавливается в «Переменных»). Кроме того, значение переменной можно непосредственно вводить в окошко с клавиатуры. Установите имидж Numberln на схеме и свяжите его с переменной zOrder (Z-порядок) имиджа Object2D. Если объекты (эллипс и прямоугольник) заслоняют друг друга, то, управляя Z-порядком одного из них с помощью Numberln, вы сможете спрятать один объект под другой. И даже под фон!
P.S. Информационная связь имеет начало и конец (обратите внимание, квадратики на концах выделенной связи различны), то есть они неравнозначны. Ведь один из связываемых имиджей является источником информации, другой - приемником. Бывает, что не существенно, какой имидж играет какую роль. Но, вообще говоря, при сборке схемы нужно учитывать направление потока информации.
P.P.S. Замечание: соединять связями можно только имиджи. К графическим объектам связи «не прицепишь». Такие уж они «глупые».
Резюме по упражнению. Для перемещения объекта с помощью слайдера нужно:
а) дать объекту имя и указать это имя в Object2D в качестве значения переменной ObjectName;
б) соединить слайдер и имидж Object2D информационной связью, причем значение переменной Value слайдера передать при помощи связи той переменной, которой планируется управлять, например, координате x или углу angle;
в) запустить схему, настроить пределы слайдера.
Упражнение 6. Имиджи: модель движения объектов
1. Интереснее, однако, управлять движением объектов не вручную, а при помощи модели - задавая законы движения и изменения объектов (и имиджей) в форме уравнений. Поставим задачу изобразить, как Земля вращается вокруг Солнца. Солнце поначалу будем считать неподвижным. Потом заставим его двигаться через фон по диагонали.
2. Начало у этого упражнения - такое же, как и у предыдущего. Создайте новый проект. Создайте фон, пусть по нему открывается окно, в котором будут жить и двигаться объекты. Например, черный прямоугольник фона - космос, небольшой желтый кружок - Солнце, синий
кружок еще поменьше - Земля. Потом дорисуем и Луну.
3. Для реализации такого проекта понадобится несколько имиджей Object2D - по одному на каждое небесное тело.
4. Модель, управляющую движением объектов, разместим в новом имидже. Создадим его, назовем, например, Motion и подберем ему подходящую иконку («Свойства», закладка «Иконка»). А можно «наделить» его совершенно оригинальным изображением (ПКМ, «Редактировать изображение» - и рисуй, что душе угодно).
6. Теперь главное: уравнения модели («Свойства», закладка «Текст»). В первую очередь это уравнения движения для графического объекта. Самое простое - написать:
то есть задать приращение угловой координаты angle на каждом шаге расчета. Закончив запись текста модели, нажмите ОК, тем самым сохраните ее. Переменную angle передайте по связи имиджу Object2D Земли. Чтобы Земля «знала», вокруг чего ей вращаться, подайте переменные x и y с Object2D Солнца на переменные x0 и y0 имиджа Object2D Земли. Затем зайдите в имидж модели в закладку «Переменные» и задайте значение переменной step. Оптимальная величина step зависит от быстродействия компьютера; начните с 0,001, а потом откорректируйте так, чтобы движение было не слишком быстрым, но и не слишком медленным. Полюбуйтесь сотворенной вашими руками звездной системой. Обратите внимание, в Stratum-2000 уравнения модели отделены от чисел, они даже «живут» в разных закладках имиджа.
7. Добавьте еще один графический объект - Луну и соответствующий имидж Object2D. Заставьте ее вращаться вокруг Земли. В имидже Motion добавьте для Луны уравнение, аналогичное (1). Величину шага для Земли - step - задайте поменьше, а для Луны - step_m - больше в 5-10 раз.
8. Теперь пусть и Солнце тоже движется. Пополните модель уравнениями движения Солнца. Пусть его координаты x и y меняются по законам, аналогичным (1). Запишите их сами так, чтобы Солнце двигалось вправо и вверх. Величину шагов по горизонтали и вертикали stepsx и stepsy установите меньше, чем для Земли.
9. Наверняка вы заметили, что планеты летают не очень-то правильно. При близких значениях step Земли и Луны эта последняя вообще вращается не вокруг Земли, а вокруг чего-то невидимого. Это и понятно, мы меняем угол, а центр вращения убегает, значит, расстояние между телами меняется произвольно. Более правильным будет рассчитывать не угловую координату планет, а непосредственно декартовы координаты x и y. Уравнения простейшей модели такого рода могут иметь вид:
angle := angle + step ,
(1)
time := time + time_step
x_s := x_s0 + vx*~time
y_s :=y_s0 + vy*~time
x_e := ~x_s + r_e*cos(omega_e*~time)
y e := ~y_s + r_e*sin(omega_e*~time)
x_m := ~x_e + r_m*cos(omega_m*~time)
y_m := ~y_e + r_m*sin(omega_m*~time)
Здесь использованы переменные: time - текущее время, timestep - шаг по времени, x_s и y_s - координаты Солнца (Sun), x_s0 и y_s0 - они же в начальный момент времени, vx и vy -скорости Солнца вдоль осей, x_e и y_e - координаты Земли (Earth), r e - радиус орбиты Земли, omegae - циклическая частота обращения Земли вокруг Солнца, x_m и y_m - координаты Луны (Moon), r_m - радиус орбиты Луны, omega_m - циклическая частота обращения Луны вокруг Земли. Значок «тильда» (~) используется, чтобы брать значения переменных с текущего шага расчета, а не с предыдущего. Можно запустить в систему дополнительные планеты, комету, космический корабль.
P.S. В задаче о Солнце и планетах мы в одном имидже Motion записали уравнения движения для трех тел. Это не очень хорошо. Лучше бы для каждого тела уравнения хранились отдельно друг от друга (это называется объектно-ориентированный подход). И еще - лучше бы они хранились не где-то снаружи тела, а прямо внутри него. То есть предпочтительно объединить изображение тела (графический объект) и законы его поведения (модель) в одном «умном» объекте - имидже. Имиджи Солнца, Земли, Луны образуют в таком случае конструктор «Солнечная система». Из конструктора можно собирать различные проекты.
P.P.S. Модели мы пока строили простейшие, очень грубые, не содержащие физических законов. Модель можно и нужно совершенствовать, добиваясь ее адекватности реальному явлению (понимая, однако, что любая модель имеет границы применимости).
Резюме по упражнению. Среда Stratum реализует объектно-ориентированный подход, позволяет при высоких сервисных возможностях быстро и эффективно решать задачи визуального проектирования и математического моделирования.
Упражнение 7. Имиджи: другие модели движения объектов
1. Колебания физического маятника. Изобразите маятник часов: закрепленный в верхней точке за один конец стержень и диск вблизи другого его конца (рис.3). Особенность этого проекта в том, что должна двигаться группа объектов. Соответственно, группе и нужно давать имя и ею как целым управлять через имидж Object2D. Простейшее модельное уравнение запишем для угловой координаты:
angle := angle0*sin (omega*time) , (3)
здесь angle0 - амплитуда колебаний, omega - циклическая частота колебаний, time - время, которое течет аналогично записанному в системе уравнений (2).
2. Это задание, как и большинство других, допускает развитие. Можно изобразить целые часы, возможно, даже с кукушкой. Пусть стрелки крутятся, причем с разной скоростью, а кукушка каждый час высовывается наружу.
3. Теперь построим модель атома. В модели должны быть отображены: 1) атомное ядро, состоящее из протонов и нейтронов (подумайте, как их можно изобразить), причем пусть протоны и нейтроны «вибрируют», слегка шевелятся вокруг положений равновесия; 2) электроны, которые летают вокруг. Подумайте, сколько должно быть электронов; как они располагаются в оболочках, которых может быть несколько; как можно изобразить спин (вращение вокруг своей оси) - какие дополнительные объекты нужно привлечь. Создайте имидж для модели, которая будет описывать движение частиц. Для обеспечения вибрации воспользуйтесь стандартной
функцией генерации случайных чисел rnd. Она работает так: rnd (число), причем случайное значение выбирается из диапазона от нуля до указанного значения числа. Чтобы частицы (сначала протоны и нейтроны, а потом и электроны) дрожали, прибавьте в модели к их начальным координатам случайные значения из не слишком широкого интервала. Настройте этот интервал, как вам нужно.
Рис. 3. К упражнению 7: вращательное и колебательное движение
4. Функция rnd применяется в модели диффузии, входящей в демонстрационную подборку Stratum'a (проект Projects\Samples\Diff\Diff.spj). Новое задание такое: изготовьте из модели диффузии модель процесса возгонки - перехода тела из твердого состояния в газообразное, минуя жидкость. Для этого модифицируйте проект диффузии: нарисуйте прямо на молекулах прямоугольник, запустите проект, убедитесь, что молекулы «приклеились» к прямоугольнику. Если сейчас уменьшать высоту (или ширину, или оба параметра) прямоугольника, то молекулы будут «отклеиваться». Продумайте сами, какие взять для этого имиджи, как настроить их значения, чтобы изобразить, скажем, испарение кусочка «сухого льда» при нагревании (температурой можно управлять со слайдера). Имейте в виду, что слайдеру нужно сообщить переменную HSpace, которая вырабатывается в имидже LGSpace.
Упражнение 8. Управление цветом, RGB-кодировка. Логические операции.
Системы алгебраических уравнений. Drag&drop (тащи-и-бросай)
1. Знакомимся со следующим системным имиджем - лампочкой (системная библиотека CONTROLS, имидж Lamp). Он имеет вид серой панельки с лампочкой, которая может гореть любым цветом. Предназначена для визуальной сигнализации. Цвет определяется переменной Color. Разберитесь с RGB-кодировкой. Для этого посмотрите проект из демонстрационной подборки Stratum'a: Projects\Samples\L1\L1.spj. Смешивайте цвета, изучайте состав каждого цвета, ведь именно так задаются цвета в компьютере, а модель позволяет ими управлять. Разберитесь с устройством проекта, прежде всего с системным имиджем Color (библиотека GRAPH2D), этот эффект можно будет использовать в дальнейшем неоднократно.
2. Постройте модель светофора (рис. 4). Используйте три имиджа лампочки и постройте имидж с моделью, управляющей переключением лампочек: пусть 45% продолжительности цикла горит зеленая лампочка, 5 % - желтая, 45 % - красная, 5 % - снова желтая. Впрочем, некоторые светофоры работают иначе. Модель должна содержать счетчик и операторы if (или case), и знаки > или < , а также и логические операторы и (||) и или (&&).
Рис. 4. К упражнению 8: циклы, решение систем уравнений
3. Если лампочки понравились, сделайте модель управления гирляндами новогодней елки. Поле для фантазии - неограниченное.
4. Stratum умеет решать системы алгебраических уравнений. Пример записи:
x + y = 5 x - y = 1 ? x, y,
последняя строка - это команда системе, какие переменные следует найти. Спроектируйте контрольное задание: пусть на экране записана система уравнений, выставлены ступенчатые переключатели Numberln, при помощи которых ученик вводит ответ, лампочка, сигнализирующая, что задача решена, и шлагбаум, который при введении правильного ответа поднимается - можешь, мол, идти дальше.
5. Знакомимся с системным имиджем DragObject (библиотека GRAPH2D), реализующим функцию Drag&drop - «тащи и бросай» объект мышкой. Предназначен для перемещения объектов в окнах выполняемых проектов. С помощью DragObject и логических операторов и (||) и или (&&) изготовим тестовое задание для малышей: «построй по росту» (рис. 5). На некотором фоне, по которому открывается окно, расположены 5-6 прямоугольников разной высоты. При помощи мыши располагаем их в порядке убывания (или возрастания) высоты. Модель должна сравнивать х-координаты объектов и их высоты. Сигнал успешного выполнения задания - лампочка загорается зеленым цветом.
Это прямоугольники. Круто да?
Итак, мальчики и девочки... Сегодня мы сыграем в очень интересную игру. Вы должны расположить в порядке возрастания (от меньшего к большему) прямоугольнички. Если Вы всё сделаете правильно, то лампочка загорится.
Рис. 5. К упражнению 8: логические операции, сигнальные элементы
Упражнение 9. Проекты с имиджем DragObject и имиджами рисования
1. В системной библиотеке GRAPH2D имеются имиджи, предназначенные для изображения отрезка, треугольника, квадрата. Сначала поработаем с отрезками.
2. Допустим, вам нужно построить треугольник, который можно будет с помощью мыши таскать за стороны и вершины. Сначала попробуйте нарисовать треугольник при помощи трех имиджей Line. Продумайте, как надо связывать эти имиджи друг с другом. Когда треугольник будет построен, потаскайте его за стороны. А за углы? - не получается. Потому что нет объектов «вершина». Нарисуйте три объекта точек-вершин, заставьте их «приклеиться к концам линий. Теперь потаскайте треугольник за вершины.
3. Аналогичные манипуляции можно выполнять с имиджами треугольника, квадрата и так далее.
1. Ускоренное и замедленное прямолинейное движение (рис. 6). Это уже ближе к физике. Вспомните кинематические уравнения равномерного и равноускоренного движения и впишите их в модель движения графического объекта. Рассмотрите случай ускоренного и замедленного движения.
2. Реализуйте задачи моделирования: а) прямолинейного движения графического объекта с прямым управлением скоростью или ускорением; б) упругого и неупругого взаимодействия с неподвижной или движущейся массивной плоскостью; в) упругого и неупругого лобового столкновения тел разной массы.
3. Движение тела, брошенного под углом к горизонту, - суперпозиция равномерного движения по горизонтали и равнопеременного по вертикали. Бросьте мяч. Рассмотрите случаи различных начальных условий (разные значения компонент начальной скорости, разные начальные координаты). Пусть мяч отскакивает от земли и стенки.
Упражнение 10. Еще проекты о механическом движении
Рис. 6. К упражнению 10: моделирование движения тела, брошенного под углом к горизонту
Упражнение 11. Проекты с имиджами объектов
1. Структурирование макромодели системы (проекта). Объектно-ориентированный подход, микромодель (базовая модель). Понятие конструктора. Имидж как единство изображения и математической модели, в том числе с иерархической организацией.
2. Взаимодействие с имиджем неподвижной массивной плоскости. Лобовое столкновение: упругий и неупругий удар для имиджей.
3. Моделирование прямолинейного движения имиджа с прямым управлением скоростью или ускорением. Определение имиджем своего местоположения и размеров.
Представленные материалы могут быть использованы при обучении моделированию в среде Stratum-2000 как на аудиторных занятиях, так и в режиме самостоятельной работы для различных возрастных категорий - школьников, студентов, учителей. Дальнейшее освоение технологии математического моделирования возможно также в системе Stratum, например, с использованием материала учебных пособий [4, 7, 8].
Список литературы
1. Баяндин Д.В. Реализация концепции полнофункциональной предметно-ориентированной среды обучения // Образовательные технологии и общество (Educati onal Technology & Society). - 2015. - Т. 18. № 4. С. 574-601. - URL: http://ifets.ieee.org/russian/depository/v18_i4/ pdf/4.pdf (дата обращения: 15.07.2015)
2. Баяндин Д.В., Гаряев А.В. Профильное обучение. Курс по выбору «компьютерное моделирование физических процессов и систем» // Вестник Пермского государственного гумани-
тарно-педагогического университета. Серия: Информационные компьютерные технологии в образовании. - 2007. № 3. - С. 43-52.
3. Баяндин Д.В., Мухин О.И. Модельный практикум и интерактивный задачник по физике на основе системы STRATUM 2000 // Компьютерные учебные программы. - 2002. - № 3. - С. 28-37.
4. Гулд Х., Тобочник Я. Компьютерное моделирование в физике: в 2-х частях. - М.: Мир, 1990. - Ч. 1. 349 с.; Ч. 2. 399 с.
5. Интер@ктивная физика. Система активных обучающих сред для средней и высшей школы учеб. пособие [Электронный ресурс]: / Д.В. Баяндин, Н.Н. Медведева, О.И. Мухин [и др.]. - ООО ИИТ. - Электрон. дан. (7,3Гб, 7,9 ГБ). - Пермь: ООО ИИТ, 2012. - 2 электрон. опт. диск (DVD-ROM). Систем. требования: Pentium 1.8 ГГц, HDD 8 Гб; RAM 2 Гб, операционная система: Windows 2000/XP/Vista/7/8.
6. Мухин О. И., Мухин К. О., Полякова О. А. Среда проектирования, технологии обучения и модели знаний // Открытое и дистанционное образование. 2010. № 1. С. 54-58.
7. Физика: наблюдение, эксперимент, моделирование. Элективный курс: Учебное пособие / А. В. Сорокин, Н. Г. Торгашина, Е. А. Ходес., А. С. Чиганов. М.: БИНОМ. Лаборатория знаний, 2011. - 204 с.
8. Хеннер Е. К., Шестаков А. П. Математическое моделирование: пособие для учителя. Пермь, 1995. - 260 с.