Юный техник 1985-11, страница 60

Юный техник 1985-11, страница 60

Приводимая ниже программа нарисует тот же язычок пламени, что и предыдущая, но она более экономична. ЯЗЫЧОК = рисунок ШАГ = 0.4

ОПОРА — набор 5 точек ((10,0), (10.5,5), (8,10), (5.5,15), (10,20)) выполнить 10 раз ОЧЕРЕДНАЯ ЛИНИЯ = плавная кривая (ОПОРА)

нарисовать ОЧЕРЕДНАЯ ЛИНИЯ

выполнить для К от 2 до 4 ОПОРА (К) = ОПОРА(К) + + (ШАГ,0) повторить повторить

конец описания рисунка ЯЗЫЧОК

нарисовать ЯЗЫЧОК

Обратите внимание: мы ввели новое имя — ШАГ — для обозначения расстояния между соседними линиями, составляющими язычок. Если когда-нибудь мы захотим сделать расстояние между этими линиями равным не четырем миллиметрам, а, например, пяти, нам достаточно будет исправить только одну команду: вместо ШАГ = 0.4 набрать ШАГ - 0.5. Кроме того, набор опорных точек мы назвали именем ОПОРА. При этом первый элемент набора, ОПОРА(1), хранит прежнюю точку А, ОПОРА(2) — точку В и так далее. Поскольку отдельные точки в наборе обозначаются номерами, мы можем скомандовать им: «Точки со второй по четвертую, ШАГ вправо!» Именно такой смысл имеет команда цикла: выполнить для К от 2 до 4 ОПОРА(К) = ОПОРА(К) + + (ШАГ,0) повторить

Давайте теперь подумаем, как нам разбросать язычки пламени по экрану дисплея «Поиска». Переписывать целиком описание рисунка для каждого язычка было бы слишком утомительно. К счастью, мы можем так построить описание, что оно подойдет для всех язычков. В нашем костре язычки отличаются друг от друга координатами самой нижней точки (назовем ее НАЧАЛО), размером и тем, насколько сильно выгнут язычок — назовем эту величину ПРОГИБ. Составим описание рисунка, не определяя пока НАЧАЛО, РАЗМЕР и ПРОГИБ. А чтобы не забыть определить их потом, запишем их в самом начале описания рисунка.

ЯЗЫЧОК = рисунок (НАЧАЛО, РАЗМЕР, ПРОГИБ) ШАГ = 0.02 X РАЗМЕР ОПОРА = набор 5 точек ОПОРА(1) = НАЧАЛО ОПОР А(2) = НАЧАЛО + + (—ШАГХ5 + ПРОГИБ, РАЗМЕР Х0.25)

ОПОРА(З) = НАЧАЛО + + (—ШАГХ5, РАЗМЕРХ0.5)

ОПОР А(4) = НАЧАЛО + + (-ШАГХ5—ПРОГИБ, РАЗ-МЕРХ0.75)

ОПОР А(5 ) = НАЧАЛО + + (0, РАЗМЕР) ВЫПОЛНИТЬ 10 РАЗ ОЧЕРЕДНАЯ ЛИНИЯ = плавная кривая (ОПОРА)

нарисовать ОЧЕРЕДНАЯ ЛИНИЯ

выполнить для К от 2 до 4 ОПОРА(К) = ОПОРА(К) + + (ШАГ,0) повторить повторить

конец описания рисунка ЯЗЫЧОК

Если теперь набрать на кла-

56