Установка начальных позиций.
Циклические алгоритмы. Мини-проект «Геометрический орнамент»
Среда программирования Scratch
1. Понятия
Цикл – многократное выполнение группы программ, повторение.
Орнамент – узор, состоящий из повтора или чередования элементов.
2. Команды, рассматриваемые в ходе изучения темы:
Группа Команда (оператор)
УПРАВЛЕНИЕ Повторять всегда
УПРАВЛЕНИЕ Повторять раз
ДВИЖЕНИЕ Идти … шагов
ДВИЖЕНИЕ Повернуться в направлении
ДВИЖЕНИЕ Повернуть на … градусов
ДВИЖЕНИЕ Перейти в
3. Циклы. Рисование фигур:
Для создания программ рекомендуется использовать спрайт карандаша, основной костюм которого следует сдвинуть краем грифеля к центру и отрегулировать размер.
Рассмотрите рисунок, показывающий процесс рисования квадрата с помощью Пера.
Обратите внимание
После рисования каждой из сторон квадрата вместо поворотов в разные направления можно использовать команду поворота на 90° по часовой стрелке.
Вывод
Для получения каждой стороны необходимо выполнить 2 команды:
пройти определенное число шагов и
повернуться.
Сторон у квадрата 4, поэтому данную последовательность 2-х команд необходимо повторить 4 раза.
Соберите соответствующий скрипт:
Обратите внимание
В данной программе рисунок будет появляться в той точки, в которой на сцене расположен карандаш. Можно ставить карандаш в необходимое место вручную, а можно до цикла добавить команду «Перейти в x:…, y:…», в которой указать необходимое место начала рисунка, например, как в программе рисования окружности (ниже). Вспомните, как создавалась программа для рисования окружности. В ней использовался тот же цикл, причем произведение количества повторений и число градусов поворота должно было равняться 360, чтобы получился полный оборот.
Для квадрата, как и для других правильных фигур (равносторонний треугольник, пятиугольник, шестиугольник) это произведение также должно быть равно 360, поэтому чтобы нарисовать другие правильные фигуры, достаточно изменить 2 числа в программе рисования квадрата: количество повторений зависит от числа сторон правильной фигуры, а, чтобы определить число градусов поворота, достаточно разделить 360 на число сторон фигуры.
Задание: самостоятельно изменить программы для получения рисунков равностороннего треугольника, пятиугольника, шестиугольника.
Чтобы фигуры получались не слишком большими, количество шагов в цикле нужно уменьшить.
Дополнительное задание
Какие еще правильные многоугольники можно нарисовать таким способом?
Стоит заметить также, что способ расположения нарисованной фигуры (то, как она повернута) зависит от начального направления спрайта. Куда направлен спрайт, туда он и будет начинать движение. Поэтому, чтобы, например, изобразить треугольник в привычном виде, необходимо изменить значение команды «повернуть в направлении …» на 30:
Способ рисования пунктирной линии.
Чтобы нарисовать пунктирную линию, необходимо сначала опустив перо идти несколько шагов, затем поднять перо и пройти еще несколько шагов, после чего снова опустить перо и идти, и так далее столько раз, сколько штрихов необходимо нарисовать. Таким образов пунктирную линии можно нарисовать с помощью следующего скрипта:
Добавляя в цикл изменение настроек пера, можно получать разнообразные пунктиры:
Далее заметим, что для того, чтобы нарисовать закрашенный круг, достаточно один раз опустить перо, причем размер круга будет зависеть от выбранного размера пера. Рассмотрите следующий рисунок и определите способ его рисования:
Выполнить самостоятельно, не забываем, что для его выполнения необходимо использовать цикл.
Решение:
Самостоятельно составить программу для рисования штрихпунктирной линии. Линия может, например, менять цвет, размер точек можно сделать больше размера штрихов.
Пример результата:
Решение:
4. Вложенные циклы. Орнамент:
Рассмотрим способ рисования ряда одинаковых квадратов.
Чтобы получить ряд таких квадратов, необходимо несколько раз выполнить последовательность: опустить перо, нарисовать квадрат, после чего поднять перо и переместиться в новую точку. Для этого необходимо использовать еще один цикл. Таким образом получим цикл в цикле. Такая конструкция называется вложенным циклом.
Наберите следующую программу и определить, что будет нарисовано в ходе её выполнения:
Самостоятельно составить аналогичные программы для получения ряда равносторонних треугольников и любых других правильных многоугольников.
Как с помощью вложенных циклов получить следующий рисунок (дополните программу для рисования ряда квадратов):
Дополнительные задания:
Как изменить полученную программу, чтобы получить следующие рисунки:
Примеры орнаментов различного вида:
Заметьте, что ряды одинаковых фигур, которые рисовали ранее, - это примеры простейших ленточных орнаментов. Теперь разберемся, как изобразить сетчатый орнамент, покрывающий всю сцену. Для этого необходимо нарисовать сначала один ряд фигур, а затем переместиться ниже в начало следующей строки и снова повторить такой же ряд. И так до тех пор, пока не заполним всю сцену. Таким образом нужно использовать 3 цикла вложенных друг в друга. Изобразим орнамент, состоящий из ромбов, расположенных внахлест друг за другом. Для этого вспомните, что ромб – это квадрат, только повернутый на 45°, поэтому для его рисования можно воспользоваться циклом квадрата, предварительно повернув карандаш в направлении 45. Итак, составим следующую программу:
Самостоятельно поэкспериментировать,
изменяя полученную программу для получения подобных орнаментов из других фигур, другого размера, расположения, с иными пересечениями или без них.
Соберите следующий скрипт:
Данная программа является простым примером создания центрического орнамента. Здесь каждый следующий элемент рисуется после поворота в необходимую сторону.
Измените одну команду и пронаблюдайте результат:
Продолжая изменять эту программу, можно получать различные варианты центрических орнаментов.
Примеры:
Экспериментируя таким образом можно получать более сложные центрические орнаменты.
Еще один пример более сложного орнамента (можно продемонстрировать скрипт и предложить нарисовать на доске результат его выполнения, а затем проверить себя, собрав и запустив код в Scratch):
5. Проект «Геометрический орнамент».
Создание геометрического орнамента по собственному замыслу. При реализации проекта используют один или несколько из рассмотренных выше способов.
6. Параллельные алгоритмы
Добавим в программу еще один спрайт карандаша путем дублирования уже имеющегося.
Чтобы проще было отличать спрайты друг от друга, можно изменить цвет нового карандаша (Pencil2).
Затем соберем для обоих карандашей скрипты:
Теперь запустив игру нажатием зеленого флажка, вы увидите, как оба карандаша одновременно начинают рисовать, образуя вот такой орнамент:
Таким образом, скрипты разных спрайтов-исполнителей выполнялись параллельно. Это называется параллельным алгоритмом. В отличие от простой последовательной (линейной) программы, здесь одновременно выполняются две или несколько последовательностей команд.
7. Проект «Олимпийские кольца».
Создание рисунка олимпийских колец с помощью параллельного алгоритма (создать программу для одного спрайта, затем дублировать и отредактировать).
Пример решения:
Домашнее задание: