138____________________________________________
PALETTE 7, 5 'выбор кода фиолетового цвета для радуги PALETTE 8,17 ' выбор кода голубого цвета под радугой PALETTE 9, 9 'выбор кода голубого цвета над радугой PALETTE 10, 16 'выбор кода зеленого цвета для луга LINE (0,0)-(639,220), 9, BF 'небо над радугой FOR 1=1 ТО 8 'цикл рисования радуги CIRCLE (320,220), 280- 7*1, I 'окружность PAINT (320,220), I 'закрашивание внутри окружности SLEEP 1 'задержка для наблюдения при отладке NEXT I 'конец цикла LINE (0,175)-(639,349),10, BF 'луг SLEEP 'задержка на неопределенное время
Цикл построения 8 концентрических окружностей с закрашиванием кругов предназначен для рисования радуги. Центр окружности должен располагаться ниже линии горизонта, так как он находится на продолжении прямой, проходящей через солнце и наблюдателя, а радиусы должны уменьшаться согласно алгоритму построения. Последний круг закрашивается более темным цветом нежели цвет неба снаружи от радуги, как это наблюдается в природе. Для удобства отладки в цикл вставлена команда задержки на 1 секунду. После отладки ее можно убрать. Последняя команда позволяет вам разглядывать картинку пока вы не нажмете любую клавишу. Если картинка вам понравилась, можете сохранить программу в файле под именем RAINBOW. ВАЗ.
Перечисленные процедуры хорошо дополняются универсальной процедурой рисования DRAW, имитирующей работу планшетного графопостроителя. Она исполняет закодированную в ее строковом параметре последовательность команд изменения масштаба, смены "фломастера", перемещения в заданную точку или на заданное расстояние в заданном направлении с рисованием прямой или без оного и закрашивание заданным цветом в пределах некоторого контура. Впрочем лучше один раз увидеть, чем сто раз услышать, поэтому перейдем к простейшему примеру однострочной программы:
SCREEN 12: CLS: DRAW "C8E50 C9R71 C10F50 C11D71 C12G50 C13L71 C14H50 C15U71"
Здесь режим 12 выбран для построения правильного восьмиугольника с разноцветными сторонами. Если выбрать другой режим (кроме 10), то восьмиугольник останется разноцветным, но будет выглядеть похуже. Для удобства чтения командная строка, задающая последовательность рисования, разделена пробелами на 8 частей (процессор безразличен к этим пробелам), каждая из которых сначала выбирает атрибут цвета (команда с с соответствующим числом), а затем буквой задает направление перемещения и количество шагов (по умолчанию масштаба в пикселах). Направления вверх, вниз, влево и вправо кодируются начальными буквами соответствующих английских слов, то есть u, D, L и R. Буквы Е, F, G и н задают "диагональные" направления. Для равенства сторон количество шагов в диагональном направлении должно быть с приемлемой для зрительного восприятия погрешностью уменьшено в корень из двух