Электронный мозг
будет думать за нас
точно так же, как
электрический стул
за нас умирает.

 

Основы работы в QBasic

Операторы управления

Встроенные функции

Оператор ввода

Операторы графики ...

Оператор безусловного перехода

Операторы условного перехода

Условная конструкция SELECT...CASE

Оператор цикла FOR...NEXT

Оператор цикла WHILE...WEND

Оператор цикла DO...LOOP

Массивы

Работа с символами

 

 

 

 


Операторы графики

 

 

 

 

 

 

 

 

 

Общие сведения

Оси координат на экране расположены следующим образом:

Установка графического режима экрана устанавливается оператором SCREEN.

SCREEN n , где n – номер режима (0-12)

При n=12 границы экрана находятся в пределах (0 - 640, 0 - 480)

Цвета для режима SCREEN 12

Цвет
0
Черный
 
1
Синий
 
2
Зеленый
 
3
Бирюзовый
 
4
Красный
 
5
Малиновый
 
6
Коричневый
 
7
Белый
 
8
Серый
 
9
Светло-голубой
 
10
Светло-зеленый
 
11
Светло-бирюзовый
 
12
Светло-красный
 
13
Светло-малиновый
 
14
Желтый
 
15
Ярко белый
 
Вверх

Построение точки с координатами (x, y):

PSET (x, y), C

PRESET (x, y), C - стирание точки

C – номер цвета (0-15)

Вверх


Построение отрезка с координатами концов (х1, у1) и (х2, у2):

LINE (x1,y1)-(x2,y2), C

C – номер цвета (0-15)

Вверх


Построение прямоугольника с координатами противоположных вершин:

LINE (x1, y1) - (x2, y2), C, В

LINE (10,10)-(50,50), 2, B

Построение закрашенного прямоугольника:

LINE (x1, y1) - (x2, y2), C, ВF

LINE (10,10)-(50,50), 2, BF

Вверх


Построение окружности:

CIRCLE (x, y), R, C

R – радиус, C – номер цвета (0-15)
(x, y) – центр окружности


CIRCLE (100,100), 50, 3

Вверх


Построение дуги:

CIRCLE (x, y), R, C, р1, р2

R – радиус, C – номер цвета (0-15)
(x, y) – центр окружности
р1 – начало дуги (радианы)
р2 – конец дуги (радианы)

Например: Построить дугу красного цвета

CIRCLE (100,100), 50, 4, 0, Pi/2

Для построения сектора перед p1 и p2 ставится знак "минус".

Например: Построить сектор красного цвета

CIRCLE (100,100), 50, 4, - 0.001, - Pi/2
(р1 и р2 не должны быть равны нулю)

Вверх


Построение эллипса:

CIRCLE (x, y), R, C , , , k

R – радиус, C – номер цвета (0-15)
(x, y) – центр окружности
k – коэфф. сжатия (число)

k > 1
 
0 < k < 1

Построение части (дуги) эллипса:

CIRCLE (x, y), R, C , p1 ,p2 , k

CIRCLE (100,100), 50, 4, 0, Pi/2, 0.4

Вверх


Закрасить замкнутую область:

PAINT (x, y), C1, C2

(x, y) – точка начала закраски (любая внутренняя точка)
C1 – цвет закраски
C2 – цвет ограничительной линии

Если цвет закраски совпадает с цветом границы, то можно указать только один цвет.

Рекомендация: рисунок строить лучше линиями одного цвета, т.к. потом будет легче закрасить его фрагменты.

Вверх


Преобразование системы координат

VIEW (x1,y1) - (x2,y2), c1, c2

Выделяет на экране монитора «окно», которое становится новым экраном, доступным для работы.
В этом окне выполняются все графические построения, остальная часть экрана становится недоступной.
При этом можно менять рабочую область монитора, применив еще раз оператор VIEW.

WINDOW SCREEN (x1,y1) - (x2,y2)

Оператор устанавливает систему координат. Если пропущен операнд SCREEN, то задается система координат с началом в (x1,y1) - верхний левый угол и (x2,y2) – нижний правый угол.
Если операнд присутствует, тогда задается система координат с началом в (x1,y1) - нижний левый угол и (x2,y2) – верхний правый угол.

При использовании вместе операторов VIEW и WINDOW можно установить в определенном месте экрана окно с необходимыми координатами и направлением осей координат.
И даже изменить единичный отрезок, сделать его отличным от точки экрана.

Например:

VIEW (x1,y1) - (x2,y2), c1, c2
WINDOW SCREEN (0,0) - (x2-x1,y2-y1)

VIEW (x1,y1) - (x2,y2), c1, c2
WINDOW (0,0) - (x2-x1,y2-y1)

Вверх


Оператор DRAW

Сейчас мы разберем очень хороший оператор DRAW, с его помощью можно рисовать довольно сложные изображения - было бы желание. А теперь прочитайте внимательно эту таблицу:

Ux
Переместиться на x точек вверх
Dx
Переместиться на х точек вниз
Lx
Переместиться на х точек влево
Hx
Переместиться на х точек вправо
Hx
Переместиться на х точек вверх и влево
Ex
Переместиться на х точек вверх и вправо
Gx
Переместиться на х точек вниз и влево
Fx
Переместиться на х точек вниз вправо
M+-x,+-y
Переместиться на + или - x точек по горизонтали и на + или - y точек по вертикали.
M x,y
Переместиться  в точку с координатами x и y
Cx
Задание цвета. Это цвет будет сохраняться до введения новой команды
Pc1,c2
Команда закраски. c1 и c2 имеют то же значение, что и в операторе PAINT
B
Переместиться на новое место, указанное в следующем за B параметре,
но РИСОВАНИЕ не производить
N
Выполнить следующую за N команду по перемещению в новое место, а затем вернуться на предыдущую позицию

 

Это почти все параметры оператора DRAW. Сам оператор имеет следующую структуру:

DRAW "---праметры---"

Т.е. для того, чтобы нарисовать куб со строной в 50 и закрасить его в красный цвет, мы введем следующий код:

DRAW "C2 R50 D50 L50 U50 B F25 P4,2"

Разберем это поэтапно: назначаем цвет №2, перемещаем курсор на 50 точек вправо, затем вниз, потом влево и затем вверх. Теперь после команды B курсор переходит без рисования на 25 точек вниз и вправо, а затем закрашивает наш квадрат с контуром цвета №2 цветом №4.

По умолчанию DRAW выводит изображение на середине экрана. Чтобы нарисовать изображение в нужной позиции добавим в начало строки команду Mx,y, где и выбираем нужные координаты.

После DRAW можно ставить не само выражение, а строковую переменную, т.е. :

a$= "C2 R50 D50 L50 U50 B F25 P4,2": DRAW a$

Оператору все-равно большими или маленкими буквами стоят параметры, а также есть ли между ними промежутки. Можно комбинировать переменные или выражения в строке DRAW при помощи знака [+]:

a$= "C2 R50 D50 L50"
b$="U50 B F25 P4,2"
DRAW "m1,1"+a$+b$

С помощью DRAW можно рисовать довольно сложные изображения. Они будут быстро выводиться на экран и занимать мало места.

Вверх


Анимация

Как заставить двигаться графический объект? Для этого надо всего лищь разобраться в обычной анимации, т.е. ответить на вопрос: "Как рисуется мультфильм?"
Вот секрет этой технологии:

1 шаг - Изобразить объект
2 шаг - Задержать его на экране
3 шаг - Удалить объект (нарисовать цветом фона)
4 шаг - Изменить координаты
5 шаг - Перейти к шагу 1

Рассмотрим это на примере движения круга от левого края экрана к правому.
При этом будет изменяться только координата Х, а Y останется неизменной.
 


SCREEN 12
Y = 200
FOR X = 0 TO 600

   
  CIRCLE ( X, Y ), 5, 7
FOR K = 1 TO 5000 : next k
CIRCLE ( X, Y ), 5, 0
'нарисовать круг
'задержать
'стереть круг
NEXT X
END

Измените программму, чтобы круг двигался вертикально сверху вниз.

Попробуйте добиться того, чтобы круг двигался по диагонали экрана.

 

 


Вверх

 

Hosted by uCoz