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

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

Давайте договоримся об одном способе сокращения записи программ. Пусть нужно сдвинуть некую точку М на X сантиметров вправо и на Y сантиметров вверх. Вместо длинной команды

N — сдвинутая на X вправо и на У вверх М

мы будем употреблять более короткую

N = M + (X,Y)

Те, кто знаком с векторной алгеброй, легко узнают формулу суммы векторов, один из которых идет от точки (0,0) в точку М, а второй имеет координаты (X,Y). С использованием короткой записи команды сдвига точек В, С и D приобретут такой вид:

В=В+(0.4,0); С=С+(0.4,0); D=D+(0.4,0)

Теперь нарисуем весь язычок с использованием команды цикла:

А — точка (10,0); В = точка (10.5,5); С = точка (8,10)

D = точка (5.5,15); Е = точка (10,20) выполнить 10 раз ОЧЕРЕДНАЯ ЛИНИЯ = плавная кривая (A,B,C,D,E)

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

В—В+(0.4,0); С=С+(0.4,0); D=D+(0.4,0) повторить

Точки В, С и D раз за разом смещаются на 4 миллиметра вправо, а вместе с ними смещаются и линии, составляющие язычок пламени, который получится таким, как на рисунке 2.

Итак, один язычок мы нарисовали. Но приведенная программа оставляет чувство некоторой неудовлетворенности. Дело в том, что в цикле при

сутствуют три почти одинаковые команды сдвига точки на 0.4 сантиметра вправо. А если бы нужно было сдвигать сто точек, двести?.. В данном случае нам не нужны индивидуальные имена для точек, через которые проходит плавная кривая. Хватило бы одного имени для всего набора опорных точек. Отдельные точки из этого набора можно обозначать просто номерами, а сдвиг точек производить в команде цикла ВЫПОЛНИТЬ, изменяя номера точек от 2 до 4.