Оператор для печати последовательности пикселей
Синтаксис
Draw [target,] cmd
Параметры
target
буфер , в котором нужно провести рисование
cmd
строка, содержащая последовательность команд
Описание
Рисование состоится на текущей рабочей странице, устанавливаемой с помощью
ScreenSet
или на указанном буфере
target Get/
Put.
Оператор
Draw может использоваться для рисования сразу
нескольких команд; полезно, для быстрого рисования фигур. Командная строка
принимает следующие команды:
Команды для построения пикселей:
Команда | Описание |
|
Команды для построения пикселей: |
B |
Необязательный префикс: двигаться, но не
рисовать. |
N |
Необязательный префикс: рисовать, но не
двигаться. |
M x,y |
Двигаться абсолютно или относительно. Если х или
у имеют знак (+ или -), движение осуществляется
относительно текущей точки, т. е. значения х и у
будут прибавлены к значениям соответствующих
текущих координат. Если знаков нет, то движение
абсолютное, т. е. из текущей точки в точку с
данными координатами. |
U [n] |
Переместиться на n единиц вверх. Если n не
указан, подразумевается 1. |
D [n] |
Переместиться на n единиц вниз. Если n не
указан, подразумевается 1. |
L [n] |
Переместиться на n единиц влево. Если n не
указан, подразумевается 1. |
R [n] |
Переместиться на n единиц вправо. Если n не
указан, подразумевается 1. |
E [n] |
Переместиться на n единиц вверх и вправо. Если n
не указан, подразумевается 1. |
F [n] |
Переместиться на n единиц вниз и вправо. Если n
не указан, подразумевается 1. |
G [n] |
Переместиться на n единиц вниз и влево. Если n
не указан, подразумевается 1. |
H [n] |
Переместиться на n единиц вверх и влево. Если n
не указан, подразумевается 1. |
|
Команды для цвета: |
C n |
Изменяет текущий цвет переднего плана для n. |
P p,b |
Цвет краски (заливка) границы b с цветом
p. |
| Команды для
масштабирования и поворота: |
S n |
Устанавливает текущую длину единицы, по
умолчанию 4. Длина единицы 4 равна 1
пикселю. |
A n | Поворот на
n * 90 градусов (n в диапазоне 0-3). |
TA n |
Поворот на n градусов
(n в диапазоне 0-359). |
|
Дополнительные команды: |
X p |
Выполняет команды из p, где p — STRING PTR. |
Команды для задания цвета, размера и угла вступят в силу для всех
последующих операций
Draw.
Пример
Screen 13
'Переместиться в (50,50) без рисования
Draw "BM 50,50"
'Задать цвет рисования 2 (зеленый)
Draw "C2"
'Нарисовать прямоугольник
Draw "R50 D30 L50 U30"
'Переместиться внутрь прямоугольника
Draw "BM +1,1"
'Заливка цветом 1 (синий) с границей цвета 2
Draw "P 1,2"
Sleep
'' Рисует на экране цветок
Dim As Integer i, a, c
Dim As String fill, setangle
'' шаблон для каждого лепестка
Dim As Const String petal = _
_
("X" & VarPtr(setangle)) _ '' ссылка
на строку регулировки угла
_
& "C15" _ '' задать
цвет контура (белый)
& "M+100,+10" _ '' нарисуем
контур
"M +15,-10" _
"M -15,-10" _
"M-100,+10" _
_
& "BM+100,0" _ '' перемещение
внутрь лепестка.
& ("X" & VarPtr(fill)) _ '' Заливка
лепестка (связываем со строкой fill)
& "BM-100,0" '' выйти
обратно
'' установка экрана
ScreenRes 320, 240, 8
'' переместиться в центр
Draw "BM 160, 120"
'' установить начальный угол и номер цвета
a = 0: c = 32
For i = 1 To 24
'' сделать регулировку угла и
строку с заливкой
setangle = "TA" & a
fill = "P" & c & ",15"
'' Нарисуем шаблон лепестка,
который связывает регулировку угла и строку с заливкой
Draw petal
'' короткая задержка
Sleep 100
'' приращение угла и номера цвета
a += 15: c += 1
Next i
Sleep
Отличия от QB
- target является новым в FreeBASIC
- QB используется специальный указатель VARPTR$ с командой X p.
- FB в настоящее время не позволяют субпиксельное движение: все движения
округляются до ближайшего целого числа координат.
См. также