Графические исполнители, с которыми мы будем знакомиться, могут вычерчивать различные фигуры на поле размером 639 на 463 единицы и закрашивать их любым из 16 цветов. Они выполняют чертежи в собственной системе координат, которая несколько отличается от той, что принята в математике и рассматривалась вами ранее: здесь начало координат расположено в левом верхнем углу, ось ОХ направлена вправо, a OY — сверху вниз. Среда для графических исполнителей задается командой SCREEN 12.
Художник по имени DRAW (произносится «дро-о») умеет рисовать картинки, состоящие из ломаных линий (в ломаной линии конец предыдущего отрезка является началом следующего).
DRAW умеет многое. Но, как и любой хороший исполнитель, он совершенно безынициативен: DRAW ничего не может делать сам, без наших указаний. Наша задача — научиться им управлять.
Художник DRAW невидим; по экрану он перемещается бесследно («прыгает») или оставляет за собой след. В начале работы DRAW обычно находится в центре экрана, а далее — в той точке, координаты которой задавались ему последний раз.
Точку, координаты которой задавались последними, будем называть текущей.
Чтобы нарисовать ломаную линию, следует отдать команду:
DRAW"<кoмaнднaя строка>"
Здесь:
DRAW — имя исполнителя;
<командная строка> — строка, состоящая из указаний, понятных исполнителю DRAW. Отдельные указания (команды) можно отделять друг от друга с помощью пробела или не отделять вообще.
Часть СКИ исполнителя DRAW приведена в следующей таблице:
По команде тх, у DRAW прочертит отрезок от текущей точки до точки с координатами (х, у) и будет считать текущей точку с координатами (х, у).
Если использовать команду bmx, у, то DRAW «прыгнет» в точку с указанными координатами. Где бы ни был художник перед этой командой, выполнив ее, он окажется в точке с координатами (х, у), но никаких видимых изменений на экране не произведет. Другими словами, эта команда только изменит текущую точку.
Исполнитель DRAW может перемещаться по экрану вверх, вниз, влево и вправо на заданное число шагов. Другими словами, он может выполнять команды:
вверх — u (up);
вниз — d (down);
влево — l (left);
вправо — r (right).
Буквы u, d, 1, г задают направление. Число шагов, которые необходимо выполнить в заданном направлении, указывается после соответствующей буквы.
С помощью команд е, f, g, h исполнитель DRAW может передвигаться по диагональным направлениям, показанным на рисунке:
Внимание! Команда е10 означает, что DRAW передвинется из исходной точки по диагонали в правый верхний угол квадрата со стороной 10 единиц.
Следовательно, шаг исполнителя, определяемый коман-дами е, f, g, h, длиннее шага, определяемого командами u, d, l, r.
Например, следующие командные строки позволяют вывести на экран рисунки цветка и бабочки:
DRAW"el0 dlO rlO glO flO 110 dlO hlO glO ulO 110 elO hlO rlO ulO flO"
DRAW"u40 dlO e20 flO dlO glO 110 flO glO hlO glO hlO elO 110 hlO ulO elO f20"
Чтобы координатам текущей точки возвращались их предыдущие значения, необходимо перед командами е, r, 1, h, g, f, d, u и m использовать команду n.
Например, повторив 4 раза фрагмент командной строки ng20 nf20 d20, можно нарисовать вот такую ель:
Нарисовать отрезок, квадрат, прямоугольник или какую-нибудь другую сложную линию можно поручить исполнителю по имени LINE.
Отрезок
Чтобы изобразить отрезок, исполнителю необходимо отдать следующую команду:
LINE (xn, yn) — (xk, yk), с
Здесь:
LINE — имя исполнителя;
(xn, yn) — координаты начала отрезка;
(xk, yk) — координаты конца отрезка;
с — номер цвета рисования контура. Его можно не указывать. По умолчанию цвет будет текущим, то есть таким, каким был назначен ранее, или белым, если он не назначался вами вообще.
Ломаная линия
Чтобы изобразить звено ломаной линии, можно применить сокращенную форму записи команды LINE:
LINE — (xk, yk)
Здесь указывается только конец отрезка, а его началом служит текущая точка (координаты которой вводились последними).
Прямоугольник
Рассмотрим прямоугольники, стороны которых параллельны осям координат:
Отрезки, соединяющие противоположные вершины прямоугольника, называются его диагоналями. АС и BD — диагонали прямоугольника ABCD.
Можно использовать команду LINE для того, чтобы нарисовать закрашенный прямоугольник, задав только его диагональ:
LINE (ха, уа) — (хс, ус), с, bf
Здесь:
(ха, уа), (хс, ус) — координаты точек А и С соответственно;
с — цвет контура и внутренней области прямоугольника.
К обычной команде мы добавили буквы b и f: b — первая буква английского слова «bох» — «коробка»; f — первая буква английского слова «full» — «полный». Таким образом, мы отдаем исполнителю команду нарисовать не линию, а «коробку» — прямоугольник с указанной диагональю, и заполнить его краской с.
Если нет необходимости закрашивать прямоугольник, то следует воспользоваться командой:
LINE (ха, уа) — (хс, ус), с, b
Исполнитель CIRCLE
Чтобы изобразить окружность на листе бумаги, мы используем циркуль. Ножку с иголкой устанавливаем неподвижно в нужном месте листа бумаги и вращаем вокруг нее ножку с грифелем.
Конец ножки с грифелем описывает замкнутую линию, которая называется окружностью.
Каждая окружность имеет свой центр и радиус. Центр окружности — это точка, в которой располагалась ножка с иголкой. Радиус — отрезок, соединяющий центр окружности и любую ее точку.
Вычерчивать окружности на экране нам поможет исполнитель по имени CIRCLE.
Этот исполнитель умеет рисовать окружности любых размеров и в любом месте экрана. Надо только правильно сообщать ему все необходимые данные — координаты центра и длину радиуса.
Вот общий вид приглашения к работе этого исполнителя:
CIRCLE (х, у), r, с
Здесь:
CIRCLE — имя исполнителя (оно должно быть написано без ошибок);
(х, у) — координаты центра окружности;
r — длина радиуса;
с — номер цвета окружности.
Если вы не укажете номер цвета рисования (умолчите об этом), то по умолчанию окружность будет нарисована белым цветом.
Случайные числа
Ваши программы будут гораздо интереснее, если внести в них элемент случайности.
Дело в том, что у компьютера есть специальная функция, которая выдает случайные числа. Ее обозначение RND получено сокращением английского слова «random», которое означает «случайный».
Когда бросается игральная кость, то заранее не известно, какое число выпадет. Но в любом случае это будет число от 1 до 6.
При помощи функции RND получается произвольное (случайное) число от 0 до 1.
Чтобы получить случайные числа из произвольного промежутка, используют выражение RND * а+b, где а — ширина промежутка, b — значение левой границы.
Для того чтобы компьютер «задумывал» произвольные координаты х и у, принадлежащие нашему графическому экрану, воспользуемся следующими программными строками:
х = 639*RND
y = 463*RND
Здесь числа 639 и 463 определяют верхние границы выдаваемых значений.
Рассмотрим пример. Пусть (х, у) — координаты некоторой точки на экране, «задуманные» компьютером. (х+5, у+5) — координаты точки, находящейся неподалеку. Нарисуем «косой дождик»:
SCREEN 12
10 х = RND*639
y = RND*463
LINE(х,у)-(х+5,у+5)
GOTO 10
В результате выполнения этой программы весь экран покрывается «косыми дождинками». В последней строке программы мы отдаем приказ вернуться на строку с меткой 10. Компьютер снова и снова «задумывает» координаты точки и чертит отрезок - «дождинку» на экране. Рисование будет продолжаться до тех пор, пока вы не прервете выполнение программы.