Относительная форма предполагает задание координат относительно последней выведенной точки, осуществляемое с помощью операнда Step(x1, y1), где x1 и y1 - значения, которые прибавляются к координатам последней выведенной точки. Значения x1 и y1 могут быть положительными и отрицательными [51, с. 89].
При загрузке системы QBasic дисплей устанавливается системой в текстовый режим работы. Для задания графического режима используется оператор Screen, который устанавливает режим и параметры работы дисплея:
Screen режим, режим - целое выражение, устанавливающее режим экрана:
Screen 0 - текстовый режим;
Screen 1 - 320х200 графический режим.
Монитор воспроизводить 16 цветов, оператор Color [c],[f] позволяет выбрать цвет символов и цвет фона, где [c] - цвет символов, [f] - цвет фона.
Отдельный пиксель можно «зажечь» заданным цветом любой из двух универсальных команд графического режима Pset (x,y),[c] и Preset (x,y),[c].
Формат команд одинаков: сначала указываются координаты точки, а затем, если необходимо - номер цвета точки [45, с. 86].
Пример 1. Изобразить на экране бегущий отрезок.
Sсreen 12
Color 4, 3
For x=1 to 640
Pset (x, 240)
Preset (x-10,240)
Next x
Операторы Pset и Preset могут иметь еще следующие формы:
Pset Step (x, y)
Preset Step (x, y)
Step в этих операторах указывает на смещение точки относительно координат последней точки.
Оператор Line (x1,y1)-(x2,y2),[c] предназначен для рисования отрезка, соединяющего две произвольные точки экрана, где x1, y1 - координаты начала отрезка, а x2, y2 - координаты конца отрезка, c - цвет.
Если координаты начала отрезка опущены, то отрезок будет начинаться с координат последней точки.
В операторе Line можно использовать относительные координаты для начала или конца отрезка. Например:
Line Step (10, 10) - (100,165) будет нарисован отрезок от точки с координатами последней точки + 10, 10 до точки с координатами 100,165.
Конечно, можно нарисовать прямоугольник с помощью операторов Line,
повторяя их четыре раза для рисования четырех сторон, но можно для этой цели выбрать, более простой путь: Line (x1, y1)-(x2, y2), [c], B, Line (x1, y1)-(x2, y2), [c], BF, где:
B - параметр, указывающий на рисование прямоугольника;
BF - параметр, указывающий на рисование закрашенного прямоугольника;
x1,y1 - координаты верхнего левого угла прямоугольника;
x2, y2 - координаты правого нижнего угла прямоугольника.
В случае пропуска какого-либо параметра или параметров необходимо сохранить нужное количество разделительными запятыми.
Пример 2. Нарисовать несколько вложенных прямоугольников.
Screen 12
Color 14,3
Pset 10, 10
For i=1 to 5
Line Step (10, 10)-(200-I*10,200-I*10)
Next i
Результатом выполнения программы будет (рисунок 5):
Рис. 5. Результат выполнения программы.
С помощью оператора Circle (x,y),r,[c] можно нарисовать окружность, где x,y - координаты или смещение центра окружности r - радиус окружности.
Чтобы нарисовать дугу, эллипс или сектор окружности необходимо добавить новые параметры в оператор Circle (x,y),r,c,n,k,a, где:
x,y - координаты центра окружности;
r - радиус окружности;
c - цвет;
n - начальная точка дуги, заданная в радианах;
k - конечная точка дуги, заданная в радианах;
a - отношение значений y- радиуса и x - радиуса. Для рисования окружности используются только параметры x,y и радиус. Для рисования дуги необходимо добавить значения параметров начальной и конечной точек [29, с. 56].
Значения параметров начальной и конечной точек задаются в радианах и должны иметь значения между 0 и 2р радиан (2р =6.28). При рисовании дуги отсчет идет от начальной точки дуги до конечной в направлении против часовой стрелки. При отрицательных значениях этих параметров начальные и конечные точки дуги соединяются с центром соответствующей окружности. Таким образом, на экране получается изображение сектора окружности. Если отрицательным является значение только одного параметра, то и соединяться с центром окружности будет только одна точка дуги.
Пример 3.
Rem рисование окружности, дуги и сектора
Screen 2
Cls
Circle (100,100), 30 ? окружность?
Circle (180,100), 30, 3, 1, 2 ? дуга?
Circle (260,100), 30, 3, -2, -1 ? сектор?
End.
Для рисования эллипса нужно ввести в оператор Circle коэффициент отношения радиусов по осям y и x. Этот параметр определяет степень сжатия эллипса и может иметь любое положительное значение. Следующая программа представляет оператор Circle с использованием различных параметров:
Rem Рисование мордашки
Sсreen 1
Circle (100,100), 70
Circle (75, 75), 10, , ,2
Circle (125, 75), 10, , ,2
Circle (100,100), 5, , ,2
Line (100, 40) - (90, 60)
Line (100, 40) - (110, 60)
Line (100, 40) - (100, 60)
Circle (100,110), 20, , , 3.14, 0
Результатом выполнения программы будет (рисунок 6):
Если цвет области совпадает с цветом границы, то с2 можно не указывать. Закрашиваемая область должна быть замкнутой. Если в контуре (на границе) области окажется разрыв, краска с1 «вытечет» из контура и заполнит весь экран.
В графическом режиме можно выводить текст командой Print. Каждый видеорежим имеет собственное деление экрана на строки и столбцы. Например, в режиме 9 экран делится на 25 строк и 80 столбцов (как бы имитация текстового режима). Матрица символа имеет размеры 8х14 - восемь столбцов и 14 строк (640/80 и 350/25). Координаты выводимого текста можно указать с помощью обычной команды Locate, например [36, с. 155]:
А=48
Locate 12,44
Print «A = »; A;
На экране будет: А = 48. Текст выводится текущим цветом символов, который указан в последней выданной команде Color.
Оператор Draw позволяет управлять движением «пера» с помощью графических команд [2, c. 34].
В строке символов записывается последовательность графических команд, причем каждая команда обозначена латинской буквой и целым числом (например, e10, c2 и т.д.). Движение пера начинается с текущей позиции курсора, а эту позицию можно установить оператором Pset или Preset.
Следующая «таблица 2» содержит команды [51, с. 189], необходимые для рисования:
Таблица 2.
Команд оператора Draw
Команда
Выполняемое действие
Un
Переместить вверх
Dn
Переместить вниз
Ln
Переместить влево
Rn
Переместить вправо
En
Переместить вверх и право по диагонали
Fn
Переместить вниз и право по диагонали
Gn
Переместить вниз и влево по диагонали
Hn
Переместить вверх и влево по диагонали
Mx,y
Переместить в точку с координатами (x,y)
B
Переместить, но не рисовать
N
Переместить, затем вернуться в начальное положение
An
Задать угол поворота
Tan
Задать угол направления
Cn
Задать цвет
Sn
Задать масштаб (n может иметь значения от 1 до 225)
P n,m
Закрасить область (n-цвет области, m- цвет контура)
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13