Программирование на языке qbasic



бет8/13
Дата28.06.2016
өлшемі479.5 Kb.
#163119
1   ...   5   6   7   8   9   10   11   12   13

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


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


Оператор SCREEN 12 задаёт графический экран размером 640*480 пикслей.
Оператор SCREEN 0 задаёт обычный текстовый экран. Этот экран используется. Если хотим из графического экрана перейти в текстовый. Экран при этом очищается.
При рисовании используется система координат, но начальная точка (0,0) находится в левом верхнем углу.
Горизонтальная ось Х идёт слева направо и имеет от 0 до 640 точек. Ось У идёт сверху вниз и имеет от 0 до 480 точек.
Точку на экран ставят с помощью команды PSET (x, y), цвет, где х, y –координаты точки, параметр цвет есть число от 1 до 16 (не обязателен).
Пример:





SCREEN 12 'обязательно

PSET (320, 240),14 'жёлтая точка в центре экрана


Следующая программа рисует случайную точку случайным цветом.


SCREEN 12

RANDOMIZE TIMER

DO

x = INT(RND * 640) 'x координата



y = INT(RND * 480) 'y координата

v= INT(RND * 16) 'цвет

PSET (x, y), v 'ставим точку с этим цветом на экран

LOOP UNTIL INKEY$ <> ""





Следующая программа рисует синусоиду и косинусоиду:




SCREEN 12
'начинается цикл, где х меняется от 0 до 640 с шагом 0.01
FOR x = 0 TO 640 STEP .1
'считаем координаты у , учитывая, что начало координат находится в левом верхнем углу.

SINY=240 + 200 * SIN(x / 30)

COSY=240 + -200 * COS(x / 30)
'ставим на экран 2 точки разного цвета

PSET (x, SINY), 2

PSET (x, COSY), 4

NEXT x



Изображение линий и прямоугольников


Линию можно провести с помощью оператора LINE.


Например,
LINE (A, B) - (C, D), цвет - проводит линию из точки с координатами (А,В) до точки с координатами (С, D) с заданным номером цвета (цвет указывать необязательно)
Для изображения прямоугольника используется оператор LINE (A, B) - (C, D), цвет, В (от слова ВОХ)
Оператор , LINE (A, B) - (C, D), цвет, ВF (от слова ВОХ FILL)
Следующий пример удобно просмотреть пошажно командами DEBUG->STEP (F8) и VIEW->OUTPUT SCREEN (F4) .


SCREEN 12

LINE (0, 0)-(640, 480)'прямая по диагонали экрана

LINE (20, 50)-(70, 100), , B 'квадрат

LINE (80, 80)-(100, 100), 2, B 'зелёный квадрат

LINE (200, 110)-(250, 300), 4, BF 'красный заполненный квадрат


Во второй строке видно, что если не хотим указывать цвет, оставляем это место пустым.
Рассмотрим программу, рисующую отрезки со случайными концами и цветом.

SCREEN 12


RANDOMIZE TIMER 'включаем генератор случайных чисел

DO

'генерируем координаты и цвет



a = INT(RND * 640)

b = INT(RND * 480)

c = INT(RND * 640)

d = INT(RND * 480)

v = INT(RND * 16 + 1)
'проводим линию

LINE (a, b)-(c, d), v

'цикл продолжается до нажатия клавиши

LOOP UNTIL INKEY$ <> ""




Изображение кругов и эллипсов


Круги и эллипсы рисуются с помощью оператора CIRCLE, к которому добавляются параметры.




CIRCLE x,y,радиус,цвет,начало,конец,коэффициент сжатия


Здесь:


  • x и y – координаты центра.

  • Цвет – число от 1 до 16.

  • Начало – начальное значение дуги в радианах, по умолчанию 0.

  • Конец – конечное значение дуги в радианах, по умолчанию 2*pii (pii = 3,14...)

  • Коэффициент сжатия – отношение высоты эллипса к его ширине, для круга равен 1.



В случае круга достаточно параметров центра круга и радиуса.
Приведём пример изображения круга и эллипса.

Его построение можно исследовать, нажимая клавиши F8 и F4.




SCREEN 12

CIRCLE (100, 100), 30 'обычный белый круг

CIRCLE (200, 100), 30, 4 'красный круг

CIRCLE (200, 300), 30, 9, 3.14 'синяя дуга

CIRCLE (400, 180), 60, 2, , , 4 'зелёный овал
Рассмотрим программу, где меняется коэффициент сжатия.


SCREEN 12

FOR к = 1 TO 16 STEP 0.1

CIRCLE (150, 240), 150, 2, , , к

NEXT


FOR к = 1 / 16 TO 1 STEP .1

CIRCLE (460, 240), 150, 4, , , к

NEXT








Достарыңызбен бөлісу:
1   ...   5   6   7   8   9   10   11   12   13




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет