Лабораторная работа №1
Тема: Графические возможности языка Basic.
Основные графические операторы:
SCREEN 12 – оператор перехода в графический режим;
LINE (X1,Y1) – (X2,Y2), Nцвета – линия;
LINE (X1,Y1) – (X2,Y2), Nцвета, В – не закрашенный прямоугольник;
LINE (X1,Y1) – (X2,Y2), Nцвета, ВF – закрашенный прямоугольник (x1,y1 и x2,y2 – координаты одной из его диагоналей);
PAINT (X,Y), N1, N2 – закрашивание области, где (x,y) – координаты точки внутри этой области, N1 – номер цвета внутри фигуры, N2 – номер цвета границы фигуры;
PSET (X,Y), Nцвета – точка;
CIRCLE (X,Y), R, Nцвета - окружность
CIRCLE (X,Y), R, Nцвета, - дуга, где - соответственно начало и конец дуги;
Пример: CIRCLE (320, 240), 20, 15, 0, 3.14/2 – рисует дугу окружности от 0 до радиуса 20.
CIRCLE (X,Y), R, Nцвета, , , - эллипс, где
- коэффициент сжатия ()
Задание для самостоятельной работы:
С помощью основных графических операторов создайте программу построения следующего рисунка:
Оператор DRAW.
Для расширения возможностей, предоставляемых ранее рассмотренными вами операторами, в расширенный Бейсик входит оператор, дающий новые возможности, например, двигать и поворачивать рисунок и т.п.
Этот оператор позволяет в виде цепочки специальных символов описать довольно сложные перемещения рисующей точки по экрану, запрограммировав таким образом процесс изображения довольно сложных фигур, состоящих из отрезков.
Процедура рисования фигуры предварительно разбивается на этапы или отдельные шаги: шаг влево, вправо, вверх, вниз, шаг по какой-либо диагонали, шаг с возвратом назад, поворот и т.д. Затем эти шаги последовательно описываются отдельными подкомандами оператора DRAW. Выполняя этот оператор, компьютер тоже отдельными шагами рисует изображение, но очень быстро.
Формат: DRAW" аргумент"
аргумент - строка, содержащая графические подкоманды (не более 255 символов).
Подкоманды оператора DRAW.
Подкоманда |
Действие |
Значение параметров |
|
Подкоманды перемещения по экрану и вычерчивания линий |
|||
Un |
Вверх |
n- количество светящихся точек |
|
Dn |
Вниз |
n- количество светящихся точек |
|
Rn |
Вправо |
n- количество светящихся точек |
|
Ln |
Влево |
n- количество светящихся точек |
|
En |
По диагонали вверх и вправо на 45° |
n- расстояние по диагонали |
|
Fn |
По диагонали вниз и вправо на 45° |
n- расстояние по диагонали |
|
Gn |
По диагонали вниз и влево на 45° |
n- расстояние по диагонали |
|
Hn |
По диагонали вверх и влево на 45° |
n- расстояние по диагонали |
|
|
|||
Mx,y |
Перемещение в заданную точку |
х, у - абсолютные координаты |
|
M +x, +y |
То же, только относительно исходной |
+х, +у - относительные |
|
точки курсора |
координаты |
||
Управляющие подкоманды |
|||
В |
При последующем перемещении не про- |
Не задаются |
|
водить линию |
|||
N |
После последующего перемещения возвратиться в текущую точку |
Не задаются |
|
Ak |
Поворот против часовой стрелки всех |
к - угол поворота, кратный 90: |
|
последующих перемещений и проводимых |
0=0° 1=90° 2=180° 3=270° |
||
линий |
|||
TAk |
Поворот на произвольный угол |
к - угол поворота |
|
-360°< к <360° |
|||
отрицательное значение - пово- |
|||
рот по часовой стрелке, положи- |
|||
тельное - против час. стрелки. |
|||
Sk |
Уменьшить или увеличить длины линий, |
к - масштабный коэффициент |
которые будут проводиться в дальнейшем |
1 < к < 255 |
|
при выполнении Sk числовые па- |
||
раметры всех команд получают |
||
множитель к/4 |
||
1=1/4х 4=1х 8=2х 36=9х и т.д. |
||
Ck |
Выбор цвета |
к - номер цвета |
Pn, m |
Закрашивание области |
п - номер цвета внутри области |
m - номер цвета контура области |
В основном команды оператора предназначены для перемещения курсора из одних точек экрана в другие с одновременным вычерчиванием соединяющих их отрезков. Но их можно модифицировать:
- если перед подкомандой движения ставится подкоманда В - это означает, что курсор будет перемещаться данной командой движения, но без вычерчивания линий;
- если перед подкомандой движения ставиться подкоманда N - курсор, после выполнения команды движения, возвращается в исходную точку.
Команды могут быть записаны как заглавными, так и прописными буквами. В качестве разделителя отдельных подкоманд может использоваться пробел или точка с запятой. Подкоманды можно и не разделять.
Пример 1:
SCREEN 12
DRAW "R59" - рисуем вправо линию длиной 59 светящихся точек. Поскольку до оператора DRAW на экране не было никаких построений, то роль начальной позиции курсора играет центр экрана.
Пример 2:
SCREEN 12
DRAW"BM80,100 C2 S12 U10 ЕЮ R10 F10 D10 G10 L10 Н10"
смещение без следа цвет масштаб в точку(80,100) увеличен
в Зраза (12/4=3)
Подкоманда Sn изменяет размер изображения, увеличивая или уменьшая его размер в зависимости от параметра n. Изображение масштабируется в n/4 раз, поэтому подкоманда S12 увеличивает изображение в 3 раза, п по умолчанию равен 4,т.е. дает масштаб 1:1.
Пример 3:
SCREEN 12
DRAW" S12 Cl NU10 NR1O NF1O ND10 NG10 NL1O NH10 "- рисует из центра экрана отрезки и возвращается в туже точку без следа
Задание для самостоятельной работы:
Составьте программу для построения следующего рисунка
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.