QuickBASIC: відмінності між версіями

[перевірена версія][перевірена версія]
Вилучено вміст Додано вміст
Немає опису редагування
Рядок 152:
== Графіка ==
 
Перемикання між режимами роботи відеоконтролера здійснюється командою
=== Текстовий та графічний екрани ===
Розміри текстового екрана у Qbasic визначають кількістю символів у ''[[Горизонтальна система координат|горизонтальному]]'' та ''[[Вертикальна табуляція|вертикальному]]''. Найчастіше це 80 символів у рядку і 25 символів у стовпці.
 
Зображення символу виникає шляхом зміни кольору [[Точка|точок]] на ділянці екрана, де зображуються один [[символ]]. Ділянка може мати різні [[Обсяг|розміри]], що залежить від типу монітора. Нехай ділянка має розміри 8 на 8 точок. Кількість точок на екрані буде такою: 640 точок у рядку та 200 точок у стовпці. Екран функціонує так: у кожну точку можна спрямувати сигнал, який змінить її колір. Якщо колір точки збігається з кольором навколишніх точок, тобто з тлом, то зображення точки на екрані буде невидиме.
: Екран, який дає змогу працювати безпосередньо з точками, називають '''графічним'''.
: Перехід від векторного (n=0) до графічного екрана виконують за допомогою команди SCREEN, а саме:
 
SCREEN n
 
Тут, де n - номер екрана,відеорежиму який(0: визначає розподільну здатність. Наприклад,текстовий; 2: - розподільна здатністьграфічний 640x200 графічних точокпікселів, 16 кольорів, 1 відео-сторінка,відеосторінка; 7: -графічний 320x200 графічних точокпікселів, 2 відеосторінки,; 8 -: 640x200, 9 -: 640x350, 11 або 12: 640x480 тощо).
: Розташування точки на екрані визначається її координатами - парою чисел (X,Y).
 
=== Кольори ===
Кольори в програмі задають командою COLOR:
 
<source lang="BASIC">
 
COLOR A, B, C || n =' для режиму 0;
COLOR A, B ' для режимів 7…10
 
COLOR A, B|| n = 7-10; ' для режиму 12
</source>
 
COLOR A || n = 12
 
Тут A, B, C - [[Число|числа]] або [[Змінна|змінні]]. Значення А задає колір зображення, В - колір тіла, С - колір межі. КольорівЧислове такікодування кольорів наступне:
 
{| class="wikitable" id="mwArc"
 
! id="mwAro" | № ([[Число|номер]])
! id="mwArw" | [[Колір]]
|-
|- id="mwAr4"
| id="mwAr8" | 0
| id="mwAsA" | [[Чорний колір|чорний]]
|-
|- id="mwAsI"
| id="mwAsM" | 1
| id="mwAsQ" | [[Синій колір|синій]]
|-
|- id="mwAsY"
| id="mwAsc" | 2
| id="mwAsg" | [[Зелений колір|зелений]]
|-
|- id="mwAso"
| id="mwAss" | 3
| id="mwAsw" | [[Блакитний колір|блакитний]]
|-
|- id="mwAs4"
| id="mwAs8" | 4
| id="mwAtA" | [[Червоний колір|червоний]]
|-
|- id="mwAtI"
| id="mwAtM" | 5
| id="mwAtQ" | [[Рожевий колір|рожевий]]
|-
|- id="mwAtY"
| id="mwAtc" | 6
| id="mwAtg" | [[Коричневий колір|коричневий]]
|-
|- id="mwAto"
| id="mwAts" | 7
| id="mwAtw" | [[Світло-сірий колір|світло-сірий]]
|-
|- id="mwAt4"
| id="mwAt8" | 8
| id="mwAuA" | [[Темно-сірий колір|темно-сірий]]
|-
|- id="mwAuI"
| id="mwAuM" | 9
| id="mwAuQ" | [[Яскраво-синій колір|яскраво-синій]]
|-
|- id="mwAuY"
| id="mwAuc" | 10
| id="mwAug" | [[Яскраво-зелений колір|яскраво-зелений]]
|-
|- id="mwAuo"
| id="mwAus" | 11
| id="mwAuw" | [[Яскраво-блакитний колір|яскраво-блакитний]]
|-
|- id="mwAu4"
| id="mwAu8" | 12
| id="mwAvA" | [[Яскраво-червоний колір|яскраво-червоний]]
|-
|- id="mwAvI"
| id="mwAvM" | 13
| id="mwAvQ" | [[Яскраво-рожевий колір|яскраво-рожевий]]
|-
|- id="mwAvY"
| id="mwAvc" | 14
| id="mwAvg" | [[Жовтий колір|жовтий]]
|-
|- id="mwAvo"
| id="mwAvs" | 15
| id="mwAvw" | [[Білий колір|білий]]
|}
 
''Приклад: 1''. Командакоманда <code>COLOR 0, 14, 3</code> забезпечуютьвстановлює чорнетекстовий зображеннярежим, чорні символи на жовтому тлі з блакитною межею ''текстового екрана''(рамкою).
 
'':Змінити колір точки''пікселя можна за допомогою команди PSET:
 
PSET (X,Y), D
 
Тут X - горизонтальна координатна точки; Y - вертикальна; D - колір; X, Y, D - сталі змінні або вирази. Якщо кольори задані командою COLOR A, B то засвітити точку (X, Y) кольором А (на тлі В) можна так:
: Якщо кольори задані командою COLOR A, B то засвітити точку (X, Y) кольором А (на тлі В) можна так:
 
PSET (X,Y)
 
''Приклад 2.'': Засвітити зеленим кольором точку з координатами (50, 100) можна так:

PSET (50, 100), 2.
 
: ''Загасити точку''піксель можна командою PSET (X,Y), B або командою
 
PRESET (X, Y)
 
''Приклад: 3''. Загаситизагасити засвічену раніше точку можна так: PSET (50, 100).
 
: Команду PRESET використовують також для розміщення графічного курсора в стартове положення (X, Y) під час побудови рисунків.
 
=== Зображення прямих і прямокутників ===
''Для зображення (рисування)малювання прямої'' кольором D використовують команду LINE:
 
LINE (X1, Y1) - (X2, Y2), D
Рядок 297 ⟶ 293:
! id="mwA1M" | Буква
! id="mwA1Q" | Напрямок
|-
|- id="mwA1U"
| id="mwA1Y" | '''U'''
| id="mwA1g" | '''↑'''
|-
|- id="mwA1o"
| id="mwA1s" | '''R'''
| id="mwA10" | '''→'''
|-
|- id="mwA18"
| id="mwA2A" | '''D'''
| id="mwA2I" | '''↓'''
|-
|- id="mwA2Q"
| id="mwA2U" | '''L'''
| id="mwA2c" | '''←'''
|-
|- id="mwA2k"
| id="mwA2o" | '''E'''
| id="mwA2w" | '''↑→'''
|-
|- id="mwA24"
| id="mwA28" | '''F'''
| id="mwA3E" | '''↓→'''
|-
|- id="mwA3M"
| id="mwA3Q" | '''G'''
| id="mwA3Y" | '''↓←'''
|-
|- id="mwA3g"
| id="mwA3k" | '''H'''
| id="mwA3s" | '''↑←'''
Рядок 331 ⟶ 327:
=== Імітація руху об'єкта на екрані ===
Для імітації руху зображення об'єкта на екрані потрібно виконати такий алгоритм:
1.# Нарисувати об'єкт у заданій точці.
2.# Знищити об'єкт, замалювавши його кольором тла.
1. Нарисувати об'єкт у заданій точці.
3.# Змінити координати об'єкта.
2. Знищити об'єкт, замалювавши його кольором тла.
4.# Перейти до пункту 1.
3. Змінити координати об'єкта.
4. Перейти до пункту 1.
Продемонструємо цей [[алгоритм]] на прикладі програми "Рух кола". На екрані зелене коло на чорному тлі рухатиметься вверх-вниз.
Програма "Рух кола"
 
<source lang="BASIC">
SCREEN 8
COLOR 2,1
Рядок 348 ⟶ 344:
IF Y < 10 OR Y > 190 THEN SY = -SY
GOTO start 'Рисування кола'
</source>
 
Перервати виконання цієї програми можна акордом Ctrl+Break.