Basic - вводный курс

промышленный воздушный фильтр


Макроязык GML

Для расширения возможностей машинной графики Бейсика был дополнительно разработан специальный макроязык GML (Graphics Macro Language). Он позволяет строить довольно сложные изображения и быстро выводить их на экран. Каждая команда языка представляет собой латинскую букву, после которой следует один или два числовых параметра (как правило, целых числа). Команды этого языка перечислены в табл. 1.3.

Таблица 1.3. Команды языка GML

Команда
Действие
Un
Переместиться вверх на n точек
Dn
Переместиться вниз на n точек
Ln
Переместиться влево на n точек
Rn
Переместиться вправо на n точек
En
Переместиться по диагонали вверх и вправо на n точек
Fn
Переместиться по диагонали вниз и вправо на n точек
Gn
Переместиться по диагонали вниз и влево на n точек
Hn
Переместиться по диагонали вверх и влево на n точек
M x, у
Переместиться в точку с координатами х, у
M ±n, im
Переместиться по отношению к текущей позиции на ±n точек по оси X и на +гл точек по оси Y. Знаки плюс и минус проставлять обязательно
At
Поворот изображения против часовой стрелки вокруг точки, с которой начиналось рисование на 90°xt (te0, 1,2,3). Действует во всех дальнейших командах до нового назначения
Cn
Задание нового цвета. Действует во всех дальнейших коман­дах до нового назначения
Sn
Расстояние, указанное в командах перемещения, умножает­ся на п/4 (0<n<255)
В
Переместиться в новую позицию при помощи следующих за в команд, но рисование не производить. Отменяется установкой цвета С
N
Выполнить следующую команду перемещения и вернуться в исходную позицию. Может предшествовать любой команде перемещения
Pcl,c2
Команда заполнения контура цветом, cl — цвет заполнения, с2 — цвет контура. Должны соблюдаться все вышеизложен­ные правила закраски, и курсор должен находиться внутри закрашиваемого контура

Основные команды перемещения легко запомнить с помощью рис. 1.30.

Рис.30. Основные команды перемещения языка GML

Для приведения в действие последовательности команд языка GML необходимо использование оператора draw.

Например, команда
I DRAW "R50 D50 L50 U50"
изобразит нам квадрат, начиная от последней графической точки.
Если такой точки не было, и вы сразу начинаете строить изображение с помощью оператора draw, to по умолчанию исходной точкой считается центр экрана.
Если вы подготовите сначала какое-либо изображение в строковой переменной, то потом его можно будет многократно вызывать на экран. Для этого используется функция "х". Ее работу рассмотрим на примере.
N$="R50 D50 L50 U50"
DRAW "C14 X"+VARPTR$ (N$)
DRAW "BM500, 50 C2 X"+VARPTR$(N$)

С помощью первого оператора запоминаем последовательность команд построения квадрата в строковой переменной n$. Вторым оператором задаем цвет 14 и сообщаем компьютеру командой х, что необходимо выполнить последовательность команд n$. Это делает функция varptr$. Последним оператором перемещаемся без рисования в точку с координатами 500, 50, меняем цвет на 2 и снова выполняем последовательность команд n$.
В результате на экране в центре и в правом верхнем углу должны появиться одинаковые разноцветные квадраты со стороной 50.
Совместное использование фафических примитивов и оператора draw позволит вам рисовать очень качественные изображения на вашем экране.
108. Для того чтобы опробовать эти возможности, нарисуйте елочку (рис. 1.31).

Рис.1.31. Елочка

109. Если вам удалось предыдущее задание, то попробуйте вырастить на экране еловый бор из трех одинаковых елочек,
пририсовать к ним траву, солнце, небо, облака — в общем, все, что подскажет вам фантазия.

Назад Начало Вперед