Система координат. Ссылка на методичку
Разделимся на рабочие группы.
Задача каждой группы — максимально верно и быстро
выполнить все задания викторины.
Верный ответ засчитывается той рабочей группе,
которая быстрее других подняла руку и показала
учителю запись верного решения в тетради.
Повторение
пройденного материала
Работаем в группах
4.
Выполните блок-схему
Начало
Возьми число 30
Вычти 19
Умножь на 2
ДА
Результат
больше 20?
Вычти 13
НЕТ
Умножь на 2
Конец
Повторение
пройденного материала
1
5.
1
Выполните блок-схему
30
Возьми число 30
11
Вычти 19
22
Умножь на 2
ДА
9
Ответ: 9
Результат
больше 20?
Вычти 13
НЕТ
Умножь на 2
Конец
Повторение
пройденного материала
Начало
6.
Повторение
пройденного материала
2
Где окажется стрелка?
7.
Повторение
пройденного материала
2
Где окажется стрелка?
8.
Заполните блок-схему
Приехала доставка
одного из моих
интернет-заказов.
Я заказывал второй
монитор и новую
видеокарту.
Если приехал
монитор, его нужно
просто подключить.
А если видеокарта,
то сначала надо
вытащить старую
видеокарту, а затем
установить новую.
Начало
ДА
.
.
НЕТ
.
.
Конец
Повторение
пройденного материала
3
9.
Заполните блок-схему
Приехала доставка
одного из моих
интернет-заказов.
Я заказывал второй
монитор и новую
видеокарту.
Если приехал
монитор, его нужно
просто подключить.
А если видеокарта,
то сначала надо
вытащить старую
видеокарту, а затем
установить новую.
Начало
ДА
Доставили
видеокарту?
Вытащить
старую
НЕТ
Подключить
Установить
новую
Конец
Повторение
пройденного материала
3
10.
4 Ответьте на вопросы
2. Зачем здесь второй скрипт, начинающийся с
?
Повторение
пройденного материала
1. Как будет вести себя спрайт при нажатии на него?
11.
Выполните блок-схему
Начало
Повторить 6
раза
Нарисовать
малину
Нарисовать
клубнику
Конец
Повторение
пройденного материала
5
12.
Выполните блок-схему
Когда пройдёт 6
повторов, цикл
завершится, значит,
будет всего 6 ягод
малины
Начало
Повторить 6
раза
Нарисовать
малину
Нарисовать
клубнику
Конец
Повторение
пройденного материала
5
13.
Повторение
пройденного материала
6 Сократите программу
14.
1
2
3
Повторение
пройденного материала
6 Сократите программу
15.
Обсуждение темы
занятия
16.
Сегодня на занятии мы:
● Научимся размещать спрайты
на сцене, менять их координаты,
а также управлять перемещением.
Обсуждение
новойзанятия
Темы
темы
● Узнаем, какая система координат
введена на сцене Scratch.
17.
Система координат
18.
Система координат
Для управления положением
спрайта на сцене в Scratch
используют систему координат
19.
Система координат
Система координат
помогает определить положение спрайта на
сцене. Зная координаты спрайта, можно
легко переместить его в любую точку сцены.
20.
Система координат
Система координат состоит из 2
числовых прямых, пересекающихся
под прямым углом
21.
Эти числовые прямые называют
осями
Ось Y
Ось X
Как вы
думаете, для
чего нужны
эти числа?
Система координат
Каждая ось имеет своё имя: X и Y.
22.
Для чего нужны эти числа?
(10; 4)
Система координат
Нужны, чтобы отметить «адрес» в системе
координат, где находится спрайт. Этот «адрес»
называют координатами.
23.
Координаты — это.
Координаты
чёрной точки
(10; 4)
Система координат
. числа, сообщающие о положении спрайта
по осям X и Y. Координаты записываются в
скобках, сначала по оси X, потом по Y → (X; Y)
24.
Задание 1. Определите
координаты зелёной точки:
Куда нужно
записать число
по оси Х, а куда —
по оси Y?
Система координат
Ответ: (__; __)
25.
Ответ: (2; 3)
Сначала отмечаем
число по оси Х,
затем — по оси Y.
Система координат
Задание 1. Определите
координаты зелёной точки
26.
Положительные
координаты
(-3; -2)
Отрицательные
координаты
Система координат
Координаты могут быть
отрицательными числами
27.
Ответ:
(__; __)
Система координат
Задание 2. Определите
координаты красной точки
28.
Ответ:
(-3; -2)
Система координат
Задание 2. Определите
координаты красной точки
29.
(__; __)
Отрицательные
координаты
Положительные
координаты
Система координат
Какие координаты у точки,
которая находится здесь?
30.
(-4; 2)
Отрицательные
координаты
Положительные
координаты
Система координат
Какие координаты у точки,
которая находится здесь?
31.
Ответ:
(__; __)
Система координат
А если точка будет лежать
на оси? Какие у неё координаты?
32.
Ответ:
(-2; 0)
Система координат
А если точка будет лежать
на оси? Какие у неё координаты?
33.
Вот так выглядит система
координат в Scratch
Размер сцены по:
Система координат
оси Х от -240 до 240,
оси Y от -180 до 180.
Узнать
координаты
спрайта можно
в свойствах
спрайта.
0
0
34.
Система координат
Определите координаты
спрайта Кот?
35.
Координаты
спрайта Кот
(104; 107).
Система координат
Определите координаты
спрайта Кот?
36.
В те же поля,
куда мы
смотрим, чтобы
определить
координаты, мы
можем записать
нужные нам
координаты.
Система координат
Можно задать свои координаты:
37.
Спрайт мгновенно
переходит в указанные
координаты.
Спрайт за указанное
в команде время
плавно перемещается
в указанные
координаты.
Система координат
В Scratch есть несколько команд
для задания положения спрайта
38.
Система координат
Пример использования блока
«перейти в X:_ Y:_»
39.
Система координат
Пример использования блока
«плыть _ секунд в точку в X:_ Y:_»
40.
Система координат
Задание 3. Где окажется спрайт
Кот после запуска скрипта?
41.
Система координат
Задание 3. Где окажется спрайт
Кот после запуска скрипта?
42.
Система координат
Задание 4. Как будет перемещаться
и где окажется спрайт Кот после
запуска скрипта?
43.
Система координат
Задание 4. Как будет перемещаться
и где окажется спрайт Кот после
запуска скрипта?
44.
Спрайт должен переместиться по всем
секторам, как в примере:
Система координат
Разберём проект
45.
Разберём проект
2. Собрать скрипт:
По количеству
перемещений
Система координат
1. Вставить команды:
46.
Разберём проект
Система координат
3. Определить координаты точек, в которые
перемещается спрайт и записать их в «перейти
Х:_ Y:_»:
47.
Разберём проект
Чтобы спрайт задержался
в секторе, добавьте
команду «ждать» после
каждой команды «перейти
в x:_ y:_»
Система координат
4. Запустить скрипт и проверить,
как перемещается спрайт.
48.
Динамическая пауза
Варианты проведения динамической паузы
49.
Работаем
на платформе
50.
Выполните задания на платформе
Основное задание
Дополнительное задание
iteducation.digital
51.
Завершение занятия
52.
Удалось ли нам достичь цели занятия?
Сегодня на занятии мы:
научились работать с системой координат
для размещения спрайтов на сцене
Подведение
итогов занятия
Блоки движения в Scratch
Координаты в Scratch, координатная сетка, блоки движения, пример использования блоков движения в Scratch.
Координатная сетка
Сцена в Scratch представляет собой координатную сетку.
Координатная сетка строится на основе двух линий, они называются осями. Чтобы не запутаться, у каждой оси есть свое название. Горизонтальную ось (оранжевую) принято называть ось x, а вертикальную (синюю) — ось y.
Точка пересечения осей называется началом координат. В этом месте значения по оси x и оси y равно 0.
Если значение X положительное, то есть больше нуля, то оно находится справа от оси Y на нашей координатной сетке, если значение отрицательно (меньше нуля), то слева. В случае если значение Y положительное, то оно находится над осью X, если отрицательное — под осью. Если значение ровно 0, то точка находится на оси.
Для примера рассмотрим кота Scratch. Сейчас он находится левее оси Y, значение X меньше нуля. Он выше оси X, значение Y больше нуля. Если провести от нашего кота линии до осей, то мы сможем найти его координаты: Х=-200, Y=100.
Координатная сетка в Scratch не отображается, однако у каждого спрайта на сцене есть свои координаты. Эти значения вы найдете под сценой. За точку принимается центр спрайта.
Движение в Scratch
Блоки движения в Scratch находятся первыми в левом боковом меню, все блоки движения голубого цвета.
Разберем назначение каждого блока.
Идти… шагов
Блок для перемещения на сцене, 1 шаг равен 1 пикселю.
Повернуть на… градусов
Данные блоки предназначены для поворота спрайта вокруг себя. Первый блок поворачивает по часовой стрелке, второй — против.
Полный оборот вокруг себя равен 360 градусом. В этом случае спрайт вернется в то же положение. Если мы хотим, чтобы наш спрайт обернулся назад, то указываем значение 180 градусов.
Перейти
Блоки служат для мгновенного перемещения в указанное положение: на случайное, на указатель мыши, к другому спрайту или в точку по заданным координатам.
Плыть
В отличие от блока перейти, блок плыть плавно перемещает спрайт в заданное положение (случайное, к указателю мыши, другому спрайту или в точку по координатам) в течение указанного времени.
Повернуться
Данный блок нужен для поворота в указанном направлении: к указателю мыши, к другому спрайту или на указанное количество градусов.
Изменить/Установить
Блоки служат для изменения координат. Блок Изменить необходим для перемещения по осям на указанное значение (например, если нужно переместить влево по горизонтали, то мы выбираем изменить х на -10). Блок Установить задаёт координату в указанное значение.
Если касается края, оттолкнуться
Если наш спрайт касается края сцены, то есть координаты превышают размер сцены, то данный блок поворачивает спрайт в обратном направлении.
Установить способ вращения
Блок нужен для выбора стиля вращения: влево-вправо, не вращать, кругом.
Положение/Направление
Блоки активируют показ положения и направления спрайта на сцене.
Пример использования блоков движения в Scratch
Рассмотрим использование блоков движения на примере игры в пинг-понг, а именно создания движения мяча.
- Создаем спрайт мяча.
- Выбираем блоки для движения мяча. Для начала, нам нужно, чтобы мяч постоянно менял направление движения, поэтому мы выбираем блок Повернуть на… градусов. Находим его в меню движения, выбираем блок, указываем количество градусов и добавляем в программу.
- Чтобы наш мяч двигался, добавляем в программу блок Идти… шагов и указываем значение, например, 15.
- Мяч уже может двигаться и менять свое направление, однако если мы запустим программу, она быстро закончится, так как мяч улетит за край сцены. Чтобы мяч постоянно был на сцене, добавляем блок Если касается края, оттолкнуться.
- Чтобы мяч постоянно двигался по сцене, из меню Управление добавляем блок Повторять всегда, по итогу получается программа:
Нажимаем на флажок над сценой и получаем следующее движение мяча:
1. Система координат на Сцені у Scratch
Довжина Сцени 480 кроків, а висота — 360 кроків. Тому, якщо виконавець знаходиться на Сцені, то абсциса х його положення може змінюватися від — 240 до 240, а ордината у — від –180 до 180.
Щоб відобразити на Сцені систему координат, можна використати стандартне тло з бібліотеки тла: xy-grid , xy-grid-20px або xy-grid-30px .
У вікні Інформація відображуються поточні координати вказівника на Сцені.
Команди групи Рух , у яких використовуються координати точок на Сцені
Блок з командою | Результат виконання команди |
Переміщує виконавця в точку на Сцені із зазначеними координатами | |
Виконавець ковзає (рухається з певною швидкістю, що залежить від указаного часу) у точку на Сцені із зазначеними координатами | |
Змінює абсцису точки розміщення виконавця на Сцені на вказане число (при цьому ордината точки розміщення виконавця не змінюється) і переміщує виконавця у відповідну точку | |
Змінює ординату точки розміщення виконавця на Сцені на вказане число (при цьому абсциса точки розміщення виконавця не змінюється) і переміщує виконавця у відповідну точку | |
Задає абсцису точки розміщення виконавця на Сцені (при цьому ордината точки розміщення виконавця не змінюється) і переміщує виконавця у відповідну точку | |
Задає ординату точки розміщення виконавця на Сцені (при цьому абсциса точки розміщення виконавця не змінюється) і переміщує виконавця у відповідну точку |
Зверни увагу!
Якщо під час виконання цих команд олівець опущено, виконавець залишає за собою слід.
Крім того, у групі Рух є два блоки: і , які можна використати в інших блоках.
Ця команда присвоює змінній а значення, що дорівнює абсцисі точки розміщення виконавця на Сцені.
Якщо встановити позначку прапорця біля цих блоків, то в лівій частині Сцени відображатимуться блоки зі значеннями абсциси та ординати поточного положення виконавця на Сцені.
У групі Датчики є два блоки і , які можна використовувати в інших блоках для визначення поточних координат вказівника на Сцені.
Цей цикл можна використати для малювання вказівником на Сцені.
Кожен спрайт має окрему точку, яка називається «Центр костюма». Ця точка визначає поточний стан спрайту на Сцені. «Центр костюма» може бути встановлений в будь-якому місці спрайту (не обов’язково в його геометричному центрі).
Можна перемістити виконавця в точку на Сцені з випадковими координатами:
Інформатика : підруч. для 7-го кл. закл. заг. серед. освіти / Йосиф Ривкінд [та ін.]. — Київ : Генеза, 2020.
Для чего нужна система координат в scratch
Сквайр Трелони, доктор Ливси и другие джентльмены попросили меня написать всё, что я знаю об Острове Сокровищ. Им хочется, чтобы я рассказал всю историю, с самого начала до конца, не скрывая никаких подробностей, кроме географического положения острова. Указывать, где лежит этот остров, в настоящее время еще невозможно, так как и теперь там хранятся сокровища, которых мы не вывезли. И вот в нынешнем, 17… году я берусь за перо и мысленно возвращаюсь к тому времени, когда у моего отца был трактир «Адмирал Бенбоу» и в этом трактире поселился старый загорелый моряк с сабельным шрамом на щеке.
Роберт Стивенсон, «Остров сокровищ»
- Процедуры
- Задача 1. Лестница
- Как создать новую команду
- Имя процедуры
- Процедурное программирование сверху вниз
- Координаты на прямой
- Координаты на плоскости
- Сцена Скретч
- Команды для работы с координатами
- Задача 2. Квадрат
- Задача 3. Квадратный узор
- Программирование снизу. Библиотеки процедур
- Справочник по командам группы «Перо»
Процедуры
Заклинание не возымело ни малейшего эффекта: яйца, вопреки его ожиданиям, не исчезли. Он повторил всю процедуру сначала — и вновь его постигла неудача.
Л. Ф. Баум, «Тик-Ток из Страны Оз»
Задача 1 . Лестница ( 3 кука ). Кот стоит на вершине лестницы. Помогите исполнителю спуститься вниз.
Помогите коту преодолеть лестницу из 4-х ступеней
Фон для сцены с рисунком лесенки расположен по адресу: practical/fonlib/Разное/Лесенка.png- Подготовка (установить кота на первую ступень).
- Повторить 4 раза спуск на одну Ступень .
— Я бы составил программу для этой задачи так, — заявил Кукарача , и показал своим студентам весьма странный скрипт:
- Подготовка (установить кота на первую ступень)
- Повторить 4 раза спуск на ступеньку (команда Ступень )
Выделенные в алгоритме названия действий превратились в команды— Программа почти буквально повторяет алгоритм, выглядит короткой и понятной!
Кроме одного момента: разве команды и входят в СКИ?
— В Скретч таких команд не предусмотрено. Нельзя же предусмотреть команды на все случаи жизни! Но Скретч позволяет программисту создавать собственные команды , и это — обычная практика программирования.
Как создать новую команду
- В группе Другие блоки нажимаем кнопку Создать блок
- Записываем имя новой команды
- Собираем скрипт для новой команды под шапочкой Определить
Теперь самодельный блок можно использовать в скриптах наравне с другими блоками!
Что будет делать новая команда? Ничего! Ничего, до тех пор, пока мы не объяcним, как она должна работать:
Действия, которые нужно выполнить по новой команде, задаются скриптом
Скрипт с именем программисты называют .
Имя процедуры (имя скрипта) можно использовать, как команду. Эту команду называют .
Процедура — это скрипт, который описывает, что должна сделать новая «самодельная» команда — вызов процедуры
— это скрипт с шапочкой-именем .
— это команда, название которой совпадает с именем процедуры. Эта команда запускает процедуру.
Что мы узнали о процедурах:
- Скрипт-процедура содержит программу работы новой команды.
- Эту команду придумывает программист для удобства решения своей задачи.
- Чтобы Скретч знал, что надо делать, выполняя новую команду, программист составляет для неё скрипт-процедуру.
- Эта команда существует только в рамках проекта, в котором создаётся.
- Эта команда будет запускать скрипт-процедуру, который задаёт программу её работы.
В уроке 1 сказано, что скрипты запускаются событиями. Добавим теперь: за исключением процедур. Эти скрипты запускаются специальными «самодельными» командами. Названия этих команд совпадают с именами процедур.
Имя процедуры
Процедура позволяет расширять систему команд исполнителя новыми командами.
Вот почему так важно выбрать для процедуры правильное имя!
Имя процедуры нужно выбирать так, чтобы было понятно, что делает новая команда.
Подготовка — хорошее имя для процедуры, которая готовит исполнителя к спуску по лестнице.
Весёлый кот — плохое имя, ведь оно ничего не говорит о том, что предстоит сделать исполнителю (подготовиться к спуску по лестнице).
Процедурное программирование сверху вниз
Вы ещё не забыли задачу, которую мы решаем?
Помогите коту преодолеть лестницу из 4-х ступеней
Мы записали алгоритм решения:
- Подготовка (установить кота на первую ступень).
- Повторить 4 раза спуск на одну Ступень .
И собрали по этому алгоритму такую программу:
В этой программе скрипт для процедуры Ступень ещё не составлен
Можно ли запустить эту программу, ведь скрипт для процедуры Ступень ещё не составлен?
Не можно, а нужно! Чтобы проверить правильность уже составленной части программы. Пустая процедура Ступень не помешает — такие процедуры называют заглушками .
— это пустая процедура, в ней присутствует только шапочка с именем. Имя можно использовать, как пустую команду , не вызывающую никаких действий исполнителя.
Проверка работы программы с заглушкой
Проверка . Перетаскиваем кота в любое место сцены, щёлкаем по флажку ( ) и убеждаемся, что кот занимает правильную позицию (на верхней ступени).
Продолжаем разработку программы. Что должна сделать команда ? Она должна переместить кота сначала по горизонтали , затем по вертикали .
- Горизонталь . Передвинуть исполнителя по горизонтали на 90 шагов.
- Вертикаль . Опустить исполнителя по вертикали на 60 шагов.
Описываем процедуру Ступень при помощи двух новых команд:
Скрипт для заглушки Ступень составлен при помощи двух новых заглушек
Сначала составляем процедуру Горизонталь и запускаем её для проверки, щёлкнув на ней мышкой:
Чтобы перемещение кота не было мгновенным, 90 шагов набираем 9-кратным повторением 10 шагов в цикле
Вопрос . Зачем в процедуре Горизонталь нужна первая команда Повернуть в направлении 90° ? Ведь в этом направлении кот устанавливается в процедуре Подготовка ?
Ответ . Процедура Горизонталь работает в цикле 4 раза. На первой ступени, действительно, указание Повернуть в направлении 90° будет лишним, но оно, безусловно, потребуется на всех оставшихся ступенях потому, что … движение по горизонтали кот начинает после движения по вертикали (в направлении 180°).
Составляем процедуру Вертикаль и запускаем её для проверки, щёлкнув на ней мышкой:
Чтобы перемещение кота не было мгновенным, 60 шагов набираем 6-кратным повторением 10 шагов в цикле
Теперь можно проверить работу программы целиком, щёлкнув на зелёном флажке.
Видео проекта можно посмотреть по адресу: video/01/unit03/Ladder.mp4
Видео проекта: video/01/unit03/Ladder.mp4
Обратите внимание: программа не должна предполагать, что перед началом её работы исполнитель расположен в нужном месте и повёрнут в нужном направленииНа примере проекта Лесенка был показан метод построения программ, название которого:
процедурным программированием сверху вниз .Метод называется «процедурным» потому, что используются процедуры.
Метод называется методом «сверху вниз» потому, что разработка программы начинается с главных действий, решающих задачу (то есть сверху , а не снизу, с деталей). Если для этих действий нет команд в СКИ, записывается процедура-заглушка с говорящим именем ( Подготовка , Ступень ).
Разработка процедур-заглушек повторяется таким же образом — описываются главные действия с использованием новых процедур-заглушек ( Горизонталь , Вертикаль ).
Процедурное программирование сверху вниз
- Делаем главный скрипт с процедурами-заглушками Подготовка и Ступень .
- Программируем заглушки Подготовка и Ступень . В последнем скрипте используем новые заглушки Горизонталь и Вертикаль .
- Программируем заглушки Горизонталь и Вертикаль .
Обратите внимание: разработка программы сверху вниз графически изображается в виде дерева. Сначала создаём корень Лесенка , потом потомки корня — Подготовка и Ступень и, наконец, потомки вершины Ступень — Горизонталь , Вертикаль
Процедурное программирование сверху вниз — это постепенное погружение в детали.
Конструктор самолёта работает так же: сначала рисует корпус, потом внутреннее устройство кабины, затем проектирует пульт управления, общие очертания кресел и, наконец, детали из которых они состоят.
Проектирование методом «сверху вниз» — универсальный метод разработки изделий. Так работают программисты, конструкторы, модельеры, дизайнеры, проектировщики.
Чем привлекателен этот метод?
Он позволяет всегда думать о главном, о верхе , то есть об изделии целиком. Детали ( низ ), создаются с учётом задуманных свойств изделия.
Если начинать с деталей, то может получиться так, что собранное из них изделие не будет работать.
Координаты
Совершив еще несколько витков по той же орбите и установив точное местоположение ракеты на лунной поверхности, космонавты произвели необходимые расчеты, после чего в ход была пущена электронная саморегулирующая машина, которая в нужный момент включила тормозной механизм.
Николай Носов, «Незнайка на Луне»
— это величины, определяющие положение объекта.
Координаты на прямой
Если бы исполнитель перемещался только по горизонтальной прямой, можно было бы считать его координатами расстояние от «домика» (центра сцены) на этой прямой.
Причём, координатам слева от домика можно приписывать знак минус, чтобы отличать их от координат справа от домика.
Кот и Лисёнок находятся на одинаковом расстоянии от начала координат — на расстоянии 4-х шагов.
Но Лисёнок — слева от домика, а Кот — справа, значит координаты Кота — ( x:4 ), а координаты Лисёнка — ( x:−4 )
Вопрос . Для какой именно точки спрайта указываются координаты?
Ответ . Для центра спрайта. Вернее, для проекции центра спрайта на ось.
Проекция центра на ось — это точка на оси, которую оставляет прямая, опущенная из центра на ось под углом 90°.
Центр спрайта можно условно «перенести» в другое место изображения в графическом редакторе Скретч инструментом («установить центр костюма»). Каждый костюм спрайта может иметь своё расположение «центра».
Вопрос . Координаты измеряются в шагах исполнителя. А чему равен один шаг?
Ответ . Среда исполнителя расположена на экране компьютера, поэтому исполнитель шагает по экранным точкам — пикселям . Значит, один шаг — это один пиксель.
Если бы исполнитель перемещался только по вертикальной прямой, можно было бы считать его координатами расстояние от «домика» (центра сцены) на этой прямой.
Причём, координатам снизу от домика можно приписывать знак минус, чтобы отличать их от координат сверху от домика.
Кот и Лисёнок находятся на одинаковом расстоянии от начала координат — на расстоянии 4-х шагов.
Но Лисёнок — снизу от домика, а Кот — сверху, значит координаты Кота — ( y:4 ), а координаты Лисёнка — ( y:−4 )
Координаты на плоскости
Нам прекрасно известно, что исполнитель может находиться в любой точке своей плоской сцены! Как же определить его координаты?
Хорошая идея указывать в качестве координат не одно число, а два! Первое — расстояние от центра сцены по оси X , второе — по оси Y :
Координаты на плоскости
Координаты Лягушки : ( x:2,y:3 ). Координаты Вороны : ( x:−5,y:−2 )
Сцена Скретч
Размеры сцены Скретч — 480 пикселей по горизонтали и 360 пикселей по вертикали. Начало координат совпадает с центром сцены:
Сцена Скретч
Координаты Плюсика на сцене: ( x:240,y:−100 )Будем записывать координаты в виде списка из двух чисел без указания осей, то есть так, как это принято в математике: ( 240,−100 ).
Первое число — координата по оси X .
Второе число — координата по оси Y .Команды для работы с координатами
Влиять на положении спрайта на сцене можно двумя способами:
- Установить спрайт в заданные координаты ( x,y ).
- Изменить текущие координаты спрайта на заданные значения (только x , только y или обе координаты сразу).
В первом случае спрайт устанавливается в заданные координаты независимо от его текущего места. Во втором — текущие координаты меняются на заданные значения.
Разницу в этих подходах иллюстрирует следующий рисунок:
Пусть текущая координата равна 3
Установить в 1 означает поместить в 1
Изменить на 1 означает увеличить текущую координату на 1Команды для работы с координатами спрайта находятся в группе Движение .
Установить в …
Команда Координаты до после
Устанавливает спрайт в заданные координатыНе важно Стало: ( 100,50 )
Плавно перемещает спрайт с текущего места в заданные координатыНе важно Стало: ( 100,50 )
Координата y не меняется.
Координата x устанавливается в заданное значениеБыло: ( ?,50 ) Стало: ( 100,50 )
Координата x не меняется.
Координата y устанавливается в заданное значениеБыло: ( 100,? ) Стало: ( 100,50 ) Изменить на …
Команда Координаты до после
Координата y не меняется.
Координата x меняется на заданное значениеБыло: ( 50,50 )
y не меняетсяСтало: ( 100,50 )
x меняется на 50
Координата x не меняется.
Координата y меняется на заданное значениеБыло: ( 100,0 )
x не меняетсяСтало: ( 100,50 )
y меняется на 50
Спрайт перемещается в текущем направлении на заданное число шаговБыло: ( 0,0 ) Стало: ( 8.66,5 ) Перо
Весной, когда растет трава,
Мои припомните слова.
— Постараюсь, — сказала Алиса.
А летом ночь короче дня,
И, может, ты поймешь меня.
Глубокой осенью в тиши
Возьми перо и запиши.
— Хорошо, — сказала Алиса. — Если только я к тому времени их не позабуду.
Льюис Кэрролл, «Алиса в Зазеркалье»Посмотрите, среди набора команд Скретч есть группа Перо .
Что за команды собраны в эту группу?
Опустить, поднять перо. Установить цвет пера, его толщину, размер… Это команды рисования!
Перо есть в запасе у каждого исполнителя-спрайта. Оно расположено точно в его центре. И если дать команду Опустить перо , спрайт при своём движении, будет оставлять след на сцене. Всё очень просто!
Центр спрайта можно условно «перенести» в другое место изображения в графическом редакторе Скретч инструментом («установить центр костюма»). Соответственно изменится точка прикрепления пера к спрайту.
Задача 2 . Квадрат ( 2 кука ). Составить процедуру рисования квадрата со стороной 100 .
ТЗ . Первая сторона квадрата рисуется по текущему направлению исполнителя. Вторая — после поворота на 90° против часовой стрелки. По завершению рисования исполнитель должен занять исходное положение и направление
- Опустить перо.
- Повторить 4 раза:
- Идти 100 шагов.
- Повернуться на 90° против часовой стрелки.
Код процедуры Квадрат
- Установите Кота на сцене мышкой.
- Произвольно поверните исполнителя в паспорте при помощи рычажка .
- Щёлкните мышкой на составленной процедуре.
В процедуре Квадрат не заданы, ни цвет, ни толщина пера, как же она работает? Дело в том, что цвет и толщина пера уже установлены в среде Скретч по умолчанию , как и все другие свойства среды и исполнителей.
Процедура Квадрат выполняет прохождение квадрата с опущенным пером, и это делает её универсальной . С помощью неё можно рисовать квадраты разного цвета, разными по толщине линиями, не меняя ничего внутри самой процедуры.
Программисты часто называют свои программы кодом .
Во-первых, потому, что программа кодирует исполнителя на выполнение некоторой работы.
Во-вторых, потому, что для непосвящённых программа кажется секретным кодом, и они удивляются, чьи это глаза и уши могут вместить такую «тарабарщину»!
Задача 3 . Квадратный узор ( 3 кука ). Можно получать интересные картинки, если поворачивать квадрат вокруг одной из своих вершин. Соберите программу, которая рисует такие узоры.
Квадратный узор из красного квадрата, который поворачивают на 10° против часовой стрелки 36 раз
Главный алгоритм зелёного флажка ( ) составим из трёх действий:
- Подготовка . Исполнителя — в центр. Очистить сцену. Задать свойства пера.
- Рисование . Рисовать узор.
- Завершение . Отойти с узора в сторону.
Этому алгоритму соответствует скрипт с тремя «самодельными» командами-процедурами:
Главный скрипт зелёного флажка
Процедуры Подготовка и Завершение совсем простые:
Процедуры Подготовка и Завершение
Составим алгоритм процедуры Рисование :
- Повторить 36 раз:
- Рисовать квадрат.
- Повернуться на 10° против часовой стрелки.
По этому алгоритму легко собрать скрипт:
Процедура Рисование
- Если вращать вокруг центра прямую, она опишет полный круг, повернувшись на 360° . На такой угол можно повернуть и квадрат, поворачивая его 36 раз по 10° .
- Для установки нужного цвета щёлкните на цветном квадратике в блоке команды , а затем на подходящем цвете в окне приложения, например, на красной кнопке останова: .
- В этом скрипте использована, написанная ранее, процедура Квадрат .
- Для проверки щёлкнем мышкой на зелёном флажке .
Почему при вращении квадрата получается окружность?
«Квадратный» узор содержит окружность! Почему?
Вспомним, что окружность состоит из точек удалённых на одинаковое расстояние от одной точки, называемой центром окружности .
На рисунке справа показано, что все точки окружности, в том числе точки A и B , удалены на одно и то же расстояние r от центра окружности O . Отрезок, соединяющий точку на окружности с центром, называют радиусом окружности .
Когда квадрат вращается вокруг своей вершины O , эта вершина становится центром окружности, а две другие соседние вершины движутся по окружности с радиусом, равным стороне квадрата r .
На самом деле получается не одна окружность, а две. Первую пробегают точки A и B (соседние с O ), вторую — точка С (на диагонали OC )
Для построения окружности существует специальный инстумент — циркуль . Но окружность можно построить и подручными средствами.
Слева: построение окружности циркулем. Справа: с помощью верёвки и двух колышков
Программирование снизу. Библиотеки процедур
Ранее Кукарача настоятельно рекомендовал:
Конечно, Кукарача прав! Это правильная рекомендация!
Из этого всеобщего правила есть одно кажущееся отступление — библиотеки процедур .
— это набор универсальных процедур по какой-нибудь теме (например, рисование геометрических фигур).
Зачем каждый раз программировать рисование фигур, если можно сделать это один раз, а потом использовать, когда потребуется!
Но, занимаясь разработкой библиотечных процедур, программист работает не «снизу вверх», как может показаться, а «снизу», то есть создаёт деталь, которую можно будет использовать в разных проектах.
Создавая библиотечную процедуру, программист по-прежнему работает «сверху вниз», то есть, сначала программирует главные действия (при помощи заглушек с говорящими именами), а потом детали, из которых эти действия собираются.
Заметим, правда, что построенную процедуру Квадрат можно назвать библиотечной с некоторой натяжкой. Для универсальности такой процедуре не хватает данных на входе , в качестве которых можно было бы задавать:
- Длину стороны (сейчас всегда 100 ).
- Направление рисования (сейчас квадрат рисуется всегда против часовой стрелки).
В дальнейшем Кукарача научит создавать такие универсальные процедуры.
В среде Скретч нет встроенных библиотек процедур, но программист может создавать их сам и подключать к своим проектам при помощи способа, описанного в тезаурусе: копирование объектов проекта.
Справочник по командам группы «Перо»
Команда Назначение Очистить сцену от всех следов, которые на нём оставили спрайты Оставить рисунок спрайта на сцене в текущей позиции Опустить Перо . После этой команды за движущимся спрайтом будет оставаться след Поднять Перо Выбрать цвет для следа Пера . Цвет можно выбрать из объектов в окне приложения (щелчок на окошке цвета в команде, затем щелчок на нужном цвете в окне) Установить численное значение цвета от 0 до 200 . Смотрите палитру цветов Пера вслед за этой таблицей Изменить цвет Пера на указанное значение Установить толщину пера Изменить толщину Пера на указанное значение Установить значение «тени» Пера : числовое значение от 0 до 100 . Смотрите на рисунке ниже, как меняет палитру цветов Пера задание «тени» Изменить значение «тени» Пера на указанное значение Числовые значения цветов Пера
Можно указывать и другие числовые значения, но палитра начинает повторяться. Например, цвета в диапазоне 200–400 полностью повторяют цвета в диапазоне 0–200
Числовые значения «тени» Пера
«Тень» Пера — неудачное название. На самом деле это число указывает насыщенность цвета — смешивание «чистого» цвета из палитры Пера с оттенком серого от 0 (смешивание с чёрным) до 100 (смешивание с белым). Значение 50 соответствует «чистым» цветам
«Газоны и клумбы»
В Роботландии работает фирма «Газоны и клумбы». Вы не знали?
Где Роботландия , а где клумбы, удивитесь вы! Дело в том, что фирма «Газоны и клумбы» программирует роботов для ландшафтного дизайна.
Однажды на фирму поступил такой заказ.
Задача 4. Клумба ( 3 кука )
Написать программу построения клумбы из 5-ти ромашек:
Клумба из 5-ти ромашек
Программист Лисёнок взялся за дело: проставил на эскизе клумбы размеры, обозначил порядок, в котором робот будет сажать ромашки, и начал составлять код программы:
Размеры клумбы, порядок высадки, начало кода
— Стоп, стоп! — остановил его Кукарача . Такой код не годится!
— Почему? — удивился Лисёнок .
— Ты строишь клумбу в начале координат! А если заказчику нужна клумба в углу сада?
— Составлю ещё одну программу!
— А если подумать? Смотри, ты используешь команды из серии «установить в» . Они перемещают объект в системе координат сцены. А ведь есть команды движения из серии «изменить на» — они работают по отношению к текущему положению объекта.
— Понятно! Если собирать клумбу из текущего положения , то её можно собирать в любом месте сада. Для этого нужно предварительно переместить туда робота командой «установить в» , а затем запустить процедуру посадки клумбы:
Процедура строит клумбу из произвольного текущего положения
Заметим, что после построения клумбы исполнитель возвращается в исходное положение — то, с которого начал работу (шаг номер 5). Шаг вроде бы лишний, но он упрощает многократную работу с процедурой — мы знаем: робот заканчивает работу там, где её начал.
Ромашку для клумбы возьмите в учебнике по адресу: practical/sprlib/vector/Цветы/ромашка.svg
Задача 5. Цветник ( 3 кука )
Создать цветник из 6 клумб. Эскиз прилагается:
Лисёнок заметил, что цветник состоит из двух рядов. В начало каждого ряда робот устанавливается при помощи команды «установить в» :
Построение цветника
Затем Лисёнок собрал процедуру Ряд , использую команду «изменить на» и процедуру Клумба :
Процедура Ряд
Попробуйте и вы проделать эту работу.
Заметим, что Лисёнок построил цветник методом сверху вниз , используя библиотечную процедуру Клумба .
— скрипт с именем .
— имя процедуры как команда.
Процедура — скрипт с шапочкой-именем.
Вызов процедуры — команда с тем же именем (она запускает процедуру)- Используем процедуры-заглушки .
- Начинаем сверху (с главных действий) и постепенно спускаемся вниз (к деталям).
— это пустая процедура, в ней присутствует только шапочка с именем. Имя можно использовать, как пустую команду , не вызывающую никаких действий исполнителя.
— это величины, определяющие положение объекта.
является расстояние объекта (его центральной точки) до начала координат (точки 0 ). Координатам слева от 0 приписывается знак минус.
Кот и Лисёнок находятся на одинаковом расстоянии от начала координат — на расстоянии 4-х шагов.
Но Лисёнок — слева от домика, а Кот — справа, значит координата Кота — ( 4 ), а координата Лисёнка — ( −4 )
является пара чисел: расстояние до 0 по оси X и расстояние до 0 по оси Y . Координатам слева от 0 по оси X и снизу от 0 по оси Y приписывается знак минус.
Координаты на плоскости
Координаты Лягушки : ( 2,3 ). Координаты Вороны : ( −5,−2 )