- •Етапи підготовки і рішення задач на еом
- •Програма, що не має помилок часу трансляції і виконання, може і не дати вірних результатів через так звані логічні помилки в обраному алгоритмі, тобто алгоритмічних помилок.
- •Запис алгоритмів у виді блок – схем
- •Мови програмування
- •1. Основні поняття алгоритмічної мови Бейсік.
- •3. Сталі та змінні.
- •4. Функції. Вирази.Оператор присвоєння
- •Вправи та запитання
- •5. Надання значень змінним
- •Оператор read.
- •6. Виведення результатів
- •Оператор Результат
- •Оператор Результат
- •7.Лінійні програми
- •Розгалуження
- •1.Логічний вираз
- •3. Команда розгалуження if. Повна форма умовної команди.
- •10.Цикли
- •11.Оператори циклу
- •12. Обчислення суми, добутку
- •13. Ітераційні цикли
- •14. Вкладені цикли
- •Мал.12 Схеми вкладених циклів.
- •15. Використання масивів
- •Вправи та запитання
- •16. Нестандартні функції та підпрограми
- •17. Робота з текстовими даними
- •18. Оператори роботи з графічною інформацією.
- •19. Робота з файлами даних
- •20 Основи роботи в пакеті MathCad
- •Визначення основних понять та позначень, безпосередньо зв'язаних з процесом обчислень у середовиіщі пакету Вхідний алфавіт
- •Типи констант і змінних
- •Розмірність, одиниці вимірів та одиниці маштабування
- •Базові обчислювальні конструкції пакета
- •Реалізація ітеративних обчислень.
- •Функції керування обчисленнями
- •Побудова декартових графіків
- •Методи доступу і роботи з файлами даних
- •Вбудовані функції та функції користувача
- •Розділ 21Алгоритми та програми реалізації загальних чисельних методів.
- •21.1. Розв’язання систем лінійних рівнянь.
- •21.2 Інтерполяція та екстраполяція.
- •21.3. Розв’язання нелінійних та трансцендентних рівнянь.
- •21.4 Розв’язування систем нелінійних рівнянь.
- •Програма 14
- •21.5. Пошук екстремумів функцій одної та багатьох змінних.
- •Програма 15
- •Програма 16
- •Програма 17
18. Оператори роботи з графічною інформацією.
Термін “машинна графіка” включає апаратні і програмні середовища, яrі забезпечують введення і формування в ЕОМ моделей опису графічних об’єктів, виконання геометричних процедур, які зв’язані з аналізом і синтезом плоских і просторових фігур, відображення різних графічних документів – графіків, гістограм ескізів, рисунків. Машинна графіка широко використовується в задачах автоматизованого проектування, при підготовці даних станків з числовим програмним керуванням. Перед тим як приступити до більш детального вивчення графіки необхідно ознайомитись з технічними засобами персонального комп’ютера.
Сучасних комп’ютерах в якості технічних засобів відображення інформації використовуються графічні монітори, які працюють в двох режимах-текстовому і графічному. В текстовому режимі дисплей відтворює вміст власного буферного запам’ятовую чого пристрою (ємність якого є від 128 кбайт до 2 мбайт). Екран в цьому випадку вміщує 24 рядки по 80 символів.
В графічному режимі дисплейний екран представлений кадром різних розмірів в залежності від типу адаптора монітора. Для зображень використовується пікселі.
Перевід екрана дисплею в графічний режим здійснюється оператором SCREEN,який має формат
<n> SCREEN [P] [, T[, [A][, B]]]
і служить для задання режиму роботи дисплею. Параметр 'P' задають арифметичним виразом (AB) із цілочисловими значеннями, який визначає режим роботи: P=0-текстовий, P=(1÷13) (в залежності від типу адаптеру дисплею)- графічний режим. Параметр 'T'- визначає режим використання і може принімати два значення 'Ø' і 'не Ø' (0- чорно-білий, Ø- дозволено використання кольору). Праметри 'A' і 'B' допустимі тільки в текстовому режимі і задають 'AB' цілочислові значення, які визначають відповідно активну і видиму сторінки буферу екрану дисплею. По замовчуванню параметри 'A' і 'B' рівні нулю.
Приклад 1. SCREEN 9 - встановлений графічний режим роботи високої степені дозволу: SCREEN 0,5, 0,3 – текстовий режим їз дозволом кольору при активній і видимих сторінках буферу екрану 0 і 3.
Основним призначенням оператору SCREEN – є зміна режиму роботи дисплею з текстового в графічний і навпаки.
Зауваження. По замовчуванню передбачається режим екрану дисплею згідно оператору SCREEN 0, 0, 0, який приписаний функціональній клавіші F10.
В графічному режимі можна виводити окремі точки (пікселі), лінії, різні геометричні фігури і т. ін. Це забезпечується можливістю адресації любої точки екрану.
Координати точки екрану для операторів графіки можна задавати як в абсолютній формі (x, y) [x – горизонталь, y - вертикаль], так і відносно останньої точки, яка встановлюється кожним оператором графіки:
STEP(x, y) – x і y являють собою зміщення відносно останньої точки відповідної горизонталі і вертикалі.
В графічному режимі можна виводити і текстову інформацію. Всі оператори графіки мови Бейсік можна використовувати тільки при роботі із графічною інформацією в режимі “графіка”. Розглянемо детально роботу операторів в графічному режимі.
При роботі з графічною інформацією використовують наступні оператори.
Оператор CIRCLE має формат:
CIRCLE (M,N),A[,C[,H,K,[E]]]
і призначений для виводу на екран еліпса з вказаними параметрами.
Координати (M,N) в абсолютній або відносній формі задають центр еліпса. Коефіцієнт стиснення ‘Е’ є відношення розмірів окружності по вертикалі до розмірів по горизонталі (‘E’ по замовчуванню приймається значення Е1=5/6). Для вказаних двох режимів графіки мають місце такі правила виводу еліптичної фігури (параметр “A”).
А визначає Х-піввісь, якщо Е Е1(Е2)
викреслюється коло радіуса А, якщо Е = 1
А визначає Y-піввісь, в протилежному випадку
Параметр ‘С’ визначає колір еліпса, який визначається оператором COLOR (по замовчуванню приймається колір символів).
Параметри ‘H’ і ‘K’ задають відповідно кути в радіанах початку і кінця дуги еліпса, яка виводиться. Значення для обох параметрів можуть знаходитися в діапазоні -2 2, а кути з цими значеннями відраховуються проти годинникової стрілки, починаючи від А-півосі еліпса. Якщо ненульові значення для параметрів ‘H’ і ’K’ від’ємні, то використовуються їх абсолютні величини, а крайні точки дуги еліпса при цьому з’єднуються з його центром прямими лініями.
Приклад ілюструє використання оператора:
1 Y=1: M=160: P=6: A=100: SCREEN 0,0,0: CLS
2 PRINT,”Демонстрація викреслювання еліпсів:”: PRINT
3 PRINT,”в режимах ‘графіка-1’ (1); ‘графіка-2’ (2);
4 PRINT “вивід 1-го і 3-го квадрантів еліпсів (3)”
5 INPUT “Задати режим (1,2,3)”; F: ON F GOTO 6,7,8: END
6 SCREEN 1: FOR K=1 TO 20: Y=1: GOSUB 11: NEXT: GOTO 5
7 SCREEN 2: FOR K=1 TO 20: Y=2: GOSUB 11: NEXT: GOTO 5
8 CLS: PI=3.141593: B=-.0001: C=-PI/2: FOR K=1 TO 10
9 GOSUB 12: NEXT: B=-PI: C=-3/2*PI: FOR K=1 TO 10
10 GOSUB 12: NEXT K: GOTO 5
11 CIRCLE (Y*M,N),A,,,,K/(Y*P): RETURN
12 CIRCLE (Y*M,N),A,,B,C,K/(Y*P): RETURN
В прикладі надається можливість виводити на екран сімейство еліпсів. Сімейство еліпсів характеризується загальним центром і розміром найбільшої півосі і визначається параметричною зміною відношення ‘Е’. Можливість прикладу дозволяє вивести дуги сімейства еліпсів, які розміщені в 1-му и 3-му квадрантах декартової системи координат. При цьому кінці дуг з’єднуються прямими лініями з центром еліпсів. Для компактності програми звернення до операторів CIRCLE оформлені на рівні підпрограм.
Оператор LINE має формат
LINE [(M1,N1)]-(М2,N2) [,[C][,B[F]]] [,M]
і служить для виводу на екран прямої лінії або прямокутника з заданими параметрами. Координати (M1,N1), (M2,N2) визначають в абсолютній або відносній формі точки екрану, через які проходить відрізок шуканої прямої. Якщо додатково вказаний параметр ‘В’, то виводиться прямокутник з діагоналлю. По замовчуванню для параметра (M1,N1) приймаються координати точки останнього посилання. Використання параметра ‘BF’ дозволяє заповнити виведений на екран прямокутник кольором, який визначається параметром ‘C’. Параметр ‘C’ задає колір графічної інформації, яка виводиться, у відповідності з оператором COLOR. При цьому по замовчуванню приймається колір символів, які виводяться (колір переднього плану).
Параметр ‘M’ задається арифметичним виразом (АВ) з цілочисельним значенням, який використовується як 16-бітовая маска для лінії, яка виводиться: порівнюються циклічно потрібно зліва направо маска і точки лінії, яка виводиться. Якщо біт маски дорівнює 1, то відповідна йому точка лінії виводиться на екран, в протилежному випадку – ні. По замовчуванню використовується маска &HFFFF, тобто виводяться всі точки лінії. Тоді як маска &H1111 дозволяє виводити пунктирну лінію. Необхідно пам’ятати, що параметри ‘M’ і ‘BF’ несумісні.
Разом з CIRCLE оператор LINE дозволяє виводити на екран різного роду багатокутні і еліптичні геометричні (13)-мірні об’єкти як окремо, так і в їх поєднаннях.
Приклад використання оператора LINE:
0 SCREEN 2: INPUT “Задати ребро куба < 133”; P: CLS
1 A=0: B=0: C=2*P: D=0: GOSUB 9: B=-P: D=B: GOSUB 9
2 B=0: C=0; GOSUB 9: A=2*P; C=A: GOSUB 9; A=0: B=-P
3 C=P: D=-3/2*P; GOSUB 9; A=2*P: C=3*P: GOSUB 9
4 B=0: D=-.6*P: GOSUB 9: A=0: B=0: C=P: GOSUB 10
5 A=P: B=D: C=3*P: GOSUB 10: A=3*P: D=-3/2*P
6 GOSUB 9: A=P: B=D: GOSUB 9: C=P: D=-.6*P: GOSUB 10
7 INPUT “Еще(1-Д/2-Н)”;T: LOCATE 25,50
8 ON T GOTO 0; END
9 LINE (10+A,199+B)-(10+C,199+D): RETURN
10 LINE (10+A,199+B)-(10+C,199+D),,,&H1111: RETURN
В даному прикладі запитується розмір ребра кубу і на його основі на екран при допомозі операторів LINE (рядки 910) виводиться трьохмірний куб з вказаним ребром. На екрані відтворюються як видимі (суцільні), так і невидимі (пунктирні) ребра кубу. Після виводу кубу користувач може або повторити роботу з програмою або завершити її. Звернення до операторів LINE оформлені на рівні підпрограм.
Оператори PSET і PRESET мають загальний формат
{PSET PRESET} (M,N) [,C]
і служать для виводу на екран дисплею точки з вказаними координатами (M,N) і кольором. Координати (M,N) можуть задаватися як в абсолютній, так і в відносній формі. Параметр ‘C’ визначає колір точки, яка виводиться, згідно оператора COLOR і по замовчуванню співпадає з кольором палітри.
Оператор PSET відрізняється від PRESET тільки значенням по замовчуванню для параметра ‘C’: PSET вбачає колір палітри, а PRESET – колір фону. Вказання точки поза межами екрану не викликає ніяких дій і діагностики. Використання операторів CIRCLE, LINE, PSET і PRESET дозволяє виводити на екран досить складні (13)-мірні графічні об’єкти, які складаються з дуг окружностей, еліпсів, прямих і точок.
Приклад використання оператора PSET:
1 CLS: REM Вивід на екран графіка функції K*(X/46)2
2 PRINT “Y=K*(X/46)^2”: LOCATE 2: SCREEN 2; A=100 : INPUT Х
3 LINE (10,100)-(600,100): LINE (305,0)-(305,199)
4 “Задать К”,K: LOCATE 2: FOR L=-295 TO 295
5 PSET (305+L,A-K*(X/46)^2): NEXT: INPUT “Еще (Y/N)”,A$
IF A$=”y” OR A$=”Y” THEN LOCATE 2: GOTO 3 ELSE END
В даному прикладі оператор PSET використовується разом з оператором LINE для виводу сімейства графіків функції Y=K*(X/46)2 в залежності вид надаваного значення для коефіцієнта ‘K’ , розміщеного в межах -750750.
Оператор PAINT має формат:
PAINT (X,Y) [,C] [,Г] [,Ф]
и служить для заповнення області екрана, яка містить точку (X,Y) и обмеженою параметром ‘Г’, який вказаний в параметрі ‘С’, кольором. Координат (X,Y) точки екрана можна задавати в абсолютній або відносній формі.
Параметр ‘C’ визначає АВ або символьний вираз (СВ), при цьому значення АВ задає признак кольору для заповнення області згідно оператора COLOR, а значення СВ задає шаблон виводу кольору на екран дисплея. Параметр ‘Г’ задає признак кольору границі області, допустимі значення для якого залежать від режиму екрана и відповідають останньому оператору COLOR. Параметр ‘Ф’ можна використовувати тільки при СВ в якості параметра ‘C’. В якості параметра ‘Ф’ використовується СВ, із значення якого вибирається тільки перший символ для визначення кольору фону екрана.
Приклад використання оператора PAINT:
1 CLS: SCREEN 2: CIRCLE (320,100),100,,,,.95
2 PAINT (320,100),1: REM Заповнення еліпса
В даному фрагменті оператором CIRCLE виводиться на екран еліпс з заданими характеристиками і після цього оператором PAINT область екрана, обмежена цим еліпсом, заповнюється білим кольором.
Для організації рухомої графіки можна використовувати оператори GET і PUT
Оператор GET має формат:
GET(M1,N1)-(M2,N2), <ІМ>
і служить для поміщення копії буфера екрана в заданий параметром <ІМ> числовий масив. Параметр ‘(M1,N1)-(M2,N2)’ задає діагональ прямокутної області екрана, копія вмістимого якої поміщається в числовий масив з іменем <ІМ>.
Оператор PUT має формат:
PUT (M,N),<ІМ>[,P]
і служить для відновлення вмістимого екрану, раніш поміщеного оператором GET в числовий масив <ІМ>. Параметри ‘(M,N)’ і ‘ІМ’ мають той же смисл, що і аналогічні їм параметри в відповідному операторі GET. При цьому значення параметрів ‘ІМ’ в операторах GET і PUT повинні співпадати, а значення параметра ‘(M,N)’ оператора PUT може відрізнятися від аналогічного йому параметра відповідного оператора GET, визначаючи точку екрана, куди виводиться відновлювальну прямокутну область екрану дисплея.
Параметр ’P’ вказує режим відновлення вмісту області екрану і приймає наступні значення: PSET,PRESET,XOR,OR і AND (по замовчуванню приймається значення XOR). Значення PSET передбачає повне відновлення вмістимого області екрану або всього екрану, раніш поміщеного оператором GET в числовий масив <ІМ>. В даному випадку оператор PUT є повною протилежністю оператора GET.
Значення PRESET проводить дії подібно PSET, але признаки кольору відновлюваної на екрані області міняються на протилежні. Значення ж AND, OR і XOR параметра ‘P’ міняють признаки кольору відновлюваної на екрані області.
Приклад сумісного використання операторів GET і PUT:
1 CLS: DIM AVZ%(41,20,10): SCREEN 2: B$=”Стирання”
2 C$=”Створення”: A$=”еліпса”: PRINT C$+A$
3 CIRCLE (320,100),95,,,,1: K=0: LOCATE 1
4 PAINT (320,100),1: GET(0,0)-(639,199),AVZ%
5 TIMER ON: ON TIMER(3) GOSUB 8: PRINT B$+A$
6 B$=”Відновлення”: WHILE 46: WEND
7 CLS: PRINT B$+A$: PUT (0,0),AVZ%,PSET: END
8 K=K+1: IF K=1 THEN CLS: GOTO 5 ELSE GOTO 7
В даному прикладі оператором CIRCLE виводиться на екран еліпс з заданими характеристиками і по оператору PAINT заповнюється білим кольором. Потім оператор GET поміщає копію всього екрана в 3-мірний цілочисельний масив AVZ% розміром 2412010=16400 байтів. Після цього вмістиме екрану стирається по оператору CLS і потім при допомозі оператора PUT знову відновлюється з масиву AVZ%.
Оператор DRAW X$ служить для виводу на екран малюнка, визначеного символьним параметром X$, який містить команди управління роботою з графічним екраном. В якості параметра оператора DRAW можна використати символьний вираз, значення якого містить команди. Команди переміщення починають рух і креслення ліній з кінцевої точки попереднього переміщення. Наведемо команди переміщення, допустимі в параметрі X$:
Uk -переміщення вверх на віддалі k точок;
Dk - >> вниз >> >> ;
Lk - >> вліво >> >> ;
Rk - >> вправо >> >> ;
Ek - переміщення по діагоналі вверх і вправо на k точок;
Fk - >> >> >> вниз і вправо >> >> ;
Gk - >> >> >> вниз і вліво >> >> ;
Hk - >> >> >> вверх і вліво >> >> ;
Mx,y - абсолютне або відносне переміщення до точки з координатами (x,y); якщо координаті ‘x’ не передують знаки {+/-}, то (x,y) абсолютні координати точки переміщення, в протилежному – координати відносно кінцевої точки.
З командами переміщення можна використовувати два спеціальних модифікатори ‘B’ і ‘N’, які на наступну за ними команду переміщення діють наступним чином:
B - переміститься у вказану позицію без малювання;
N - переміститься з малюванням і поворотом назад.
Команда ‘Sk’-дозволяє встановити коефіцієнт шкали екрану із значенням <k> (1÷255; при замовчуванні <k>=4). Коефіцієнт шкали рівний[k/4]і діє на всі команди, крім команди Мх,у абсолютного переміщення. Величина переміщення Р в командах цього типу визначається як Р=k²/4.
Команда ‘Ak’ дозволяє встановити кут ‘k’, який при <k>=0,1,2,3 приймає відповідно 0,90,180 і 270 градусів. При такому значенні <k> відповідає напрямок вздовж Х - осі. Команда ‘ТАk’ визначає поворот на кут в <k> градусів (-360<=<k><=360). При такому значення <k> відповідає повороту проти повороту годинникової стрілки. Команда ‘Сk’ встановлює ознаку <k> кольору фігури, що малюється. Для вибору кольору потрібно керуватися описом оператора COLOR. При замовчуванні <k>=1 визначає білий колір і <k>=3 – колір переднього плану. Команда ‘Pk,n’ встановлює колір фігури, що малюється на екрані, та її границі. При цьому параметри ‘k’ і ‘n’ команди повинні бути АВ цілого типу і їх значення відповідати режиму екрану аналогічно команді ‘Ck’.
У всіх перерахованих командах управління роботою графічного екрану параметри ‘k’, ‘x’ і ‘y’ можуть задаватися, як цілими константами, так і конструкціями виду ‘B=X;’, де B={k|x|y} і Х – числова змінна будь-якого типу (ціла, звичайна або подвійної точності), цілочисельне значення якої присвоюється параметру команди. Команди в параметрі X$ оператора DRAW можна розділяти крапкою з комою (;), яка є обов’язкова після змінних.
Команда ‘XA$;’ дозволяє здійснити набір із вище перерахованих команд, вміщених в значенні символьної змінної A$, яка, в свою чергу, також може вміщати команду ‘XA1$;’ і так далі. Команда цього типу повинна неодмінно завершуватися крапкою з комою (;). Варто зауважити, що в командах типу ‘B=X;’ і ‘XA$;’ не можна використовувати замість змінних 'X' і 'A$' відповідно АВ і СВ.
Перший оператор DRAW, якщо до нього не використовувались оператори графіки, починає свою роботу з центру екрану.
Із поданого опису, оператор DRAW є найбільш загальним оператором виводу на екран різного роду графічних об’єктів і малюнків. При використанні оператора DRAW потрібно враховувати, що значення координат точок екрану, що виходять за допустимі межі, замінюються граничними. Таким чином, оператор DRAW задає послідовність команд руху і управління, визначаючи свого роду мову графічного виводу інформації. З його допомогою можна будувати складні графічні об’єкти.
Використання оператора DRAW поряд з операторами CIRCLE, LINE, PSET, PRESET і PAINT дозволяє виводити на екран будь-які малюнки і геометричні об’єкти. Поряд з операторами графіки в ряді випадків зручно використовувати системні функції POINT (K), POINT (M,N), які допустимі тільки в графічних режимах роботи.
Системна функція POINT (K) вираховує координати поточної точки графічного екрану в залежності від значення аргументу ‘K’ наступним чином (табл. 8):
Таблиця 8
Значення <K> |
Значення функції POINT (K) |
0 |
Фізична координата точки по Х-осі |
1 |
Фізична координата точки по Y-осі |
2 |
Локальна координата точки по Х-осі |
3 |
Локальна координата точки по Y-осі |
Локальні координати точки функція POINT (K) повертає тільки в тому випадку, якщо використовувався оператор WINDOW.
Системна функція POINT (M,N) вираховує ознаку кольору точки екрану, заданої абсолютними координатами (X,Y).
Приклад:
1 SCREEN 2:A$=”BM320,100”:D=SQR(2):CLS
2 TIMER ON:ON TIMER (5) GOSUB 10
3 X$=”XA$;BL=Y;E=A;R=P;F=A;G=A;L=P;H=A;”
4 K=(D/2+1):FOR A=10 TO 80 STEP 5:P=D*A
5 Y=K*A:DRAW X$:NEXT A:WHILE 46:WEND
6 CLS:A=150:K=36:DRAW A$+”BU50”:GOSUB 11
7 DRAW A$+”BD50”:GOSUB 11:DRAW A$+”BL150”
8 GOSUB 11:DRAW A$+”BR150”:GOSUB 11
9 LOCATE 10,40:PRINT “The End”:END
10 RETURN 6:’Обробка переривання
11 FOR F=0 TO 360 STEP K:DRAW “TA=F;R35”:NEXT F
12 PAINT (POINT(0)+2,POINT(1)-2),1:RETURN
В даному прикладі використовуються основні команди оператора DRAW, оператора PAINT і системної функції POINT (K). В першій частині програми за допомогою оператора DRAW в циклі на екран виводиться сімейство вкладених шестикутників із стороною розміром SQR(2)*A (A=10+5*d; d=0-12) з загальним центром в точці (320,100) – центрі графічного екрану. Для виводу використовуються всі команди переміщення, включаючи їх модифікації, і команда виконання ланцюжка. Після цього за допомогою безкінечного циклу типу WHILE – END і засобу обробки переривання від таймера організується затримка одержаного зображення екрану на заданий проміжок часу. По закінченні вказаного проміжку оператором CLS вмістиме екрану стирається і починає виповнятися друга частина програми.
В другій частині програми операторами DRAW будуються чотири копії 10-тикутника, які оператором PAINT, використовуваним в якості аргументів значення функції POINT (K), заповняються білим кольором. Друга частина показує використання СВ в якості параметра оператора DRAW, а також команд обертання.
Оператор VIEW має формат:
VIEW [[SCREEN] (M1,N1) - (M2,N2) [, [C] [,Г]]]
і служить для визначення на графічному екрані прямокутного вікна, з яким будуть працювати наступні оператори графіки. Параметр ‘(M1,N1) – (M2,N2)’ задає діагональ прямокутного вікна з координатами в абсолютній формі. Для підпараметрів даного параметра допустимі будь-які співвідношення, крім співвідношень М1=М2 і N1=N2 .
Параметр 'C' задає АВ з цілочисельними значеннями. Вказані значення визначають колір згідно оператора COLOR. При замовчуванні вікно екрану кольором не заповняється. Параметр 'Г' задає АВ з цілочисельними значеннями аналогічно параметра “С” і служить для вказівки кольору границі вікна. Параметр 'SCREEN' визначає режим доступу до вікна екрану наступним чином. При наявності даного параметра координати, що виводяться операторами графіки точок вважаються абсолютними і точки, що не попадають в вікно, на екран не виводяться. При замовчуванні ж координати точок, що виводяться розглядаються відносно активного вікна екрану.
Оператор VIEW без параметрів в якості вікна визначає весь екран. Якщо в програмі використовуються декілька операторів VIEW, то активне вікно визначається останнім оператором VIEW. Весь вивід графічної інформації може йти тільки в активне вікно екрану. Активність вікна можна змінити оператором VIEW,що задає нове активне вікно екрану. Дії оператора VIEW відміняє команда RUN або оператор SCREEN, що змінює характеристики екрану.
Приклад:
10 SCREEN 2:VIEW:CLS:P=0
20 VIEW (0,0) - (320,100):GOSUB 200
40 VIEW (321,0) - (639,100):GOSUB 200
60 VIEW (0,100) - (320,199):GOSUB 200
80 VIEW (320,100) - (639,199):GOSUB 200
100 INPUT “Еще (1- Д/2 –Н)”;T:ON GOTO 10:END
200 LINE (0,100)- (639,100):LINE(320,0)- (320,199)
300 P=P+1:CIRCLE (160,50),60:PAINT(160,50),1
400 LOCATE 2*7 ^ INT (P/3),43 ^ (SGN (INT (P/2)- P/2)+1)
500 PRINT “Window”;P:RETURN
В даному прикладі операторами VIEW утворюються чотири вікна екрану. Після створення Р- го (Р=1-4) вікна управління передається підпрограмі (рядок 200), яка:
виводить на екран систему взаємно перпендикулярних ліній з центром в точці (320,100), що визначають границі вікон екрану;
- формує еліпс і заповняє його білим кольором; даний еліпс вміщується в поточне Р-е вікно екрану;
- вичисляє координати виводу повідомлення ‘Window P’ і виводить дане повідомлення в поточне вікно екрану.
Після формування і заповнення всіх чотирьох вікон екрану користувач отримує можливість або повторити роботу з програмою, або завершити її.
Оператор Window має формат:
Window [[SCREEN] (M1,N2)- (M2,N2)]
і служить для визначення локальної прямокутної системи координат, заданої параметром ‘(M1,N2)- (M2,N2)]’. Значення для ‘Mk,Nk’(k=1,2) задаються як числа звичайної точності і визначають локальну прямокутну систему координат. Фізичні (абсолютні) координати вершин прямокутника локальних координат визначаються в останньому операторі VIEW. Якщо оператор VIEW в програмі не використовувався, то вершини прямокутника локальних координат співпадають з відповідними кутами екрану дисплею. На використання підпараметрів ‘Mk,Nk’(k=1,2) накладаються ті ж обмеження, що і в випадку оператора VIEW.
Параметр ‘SCREEN’ задає напрямок осей прямокутних координат в локальній системі наступним чином: при наявності параметра осі локальних координат співпадають з осями фізичної (абсолютної) системи (Х-вісь направлена вправо; Y-вісь направлена вниз), в протилежному випадку використовується звичайна декартова система координат.
В період дії Window координати кожної точки, що виводиться на екран операторами графіки, зміняться із локальних в абсолютні. Абсолютна система координат екрану встановлюється операторами Window без параметрів, SCREEN і RUN в програмному рядку.
Разом з оператором Window в ряді випадків доцільно використовувати системну функцію PAMP (M,k), яка перетворює координату М точки графічного екрану із локальної системи в абсолютну і навпаки згідно табл. 9
Таблиця 9
Значення <K> |
Перенесення координати М точки, лежачої |
0 |
на Х-осі із локальної форми в абсолютну |
1 |
на Y-осі із локальної форми в абсолютну |
2 |
на Х-осі із абсолютної форми в абсолютну |
3 |
на Y-осі із абсолютної форми в абсолютну |
Функція PМАP дозволяє здійснювати перехід із абсолютної системи координат в локальну, встановлену останнім оператором Window, і навпаки. Розглянемо два приклади використання оператора Window і системної функції РМАР:
0 SCREEN 2:CLS:WINDOW (46,46)- (5,5)
1 X=CINT (PMAP(320,2)):Y=CINT(PMAP(100,3))
2 CIRCLE (X,Y),X/2:PAINT(X,Y);1
3 PRINT PMAP (46,0);PMAP(46,1); PMAP(5,0); PMAP(5,1);
4 PRINT “- Фізичні координати”
5 PRINT PMAP (PMAP (46,0),2); PMAP (PMAP (46,1),3);
6 PRINT PMAP (PMAP (5,0),2); PMAP (PMAP (5,1),3);
7 PRINT “Локальні координати”
8 PRINT “Локальні координати центру”
9 PRINT “екрану: X=”;X;”Y”=”;Y
В даному прикладі оператором Window задаються локальні координати для всього екрану в режимі “графіка-2”, після чого за допомогою функції PMAP зразу ж вираховуються координати (X,Y) центру екрану в заданій локальній системі координат. Використовуючи локальні координати (X,Y) за допомогою операторів CIRCLE і PAINT, будуємо еліпс з центром (X,Y) і Х- піввіссю рівною Х/2, заповнений білим кольором. В кінці виконання програми на екран виводяться фізичні, відповідні їм локальні координати прямокутника і локальні координати центру екрану при даному операторі Window. Для простоти локальні координати зручно вводити у вигляді ' (0,0)- (A,A)' або ' (-А,-А)- (A,A)' .
Другий приклад є модифікацією прикладу, наведеного при розгляді оператора VIEW:
0 SCREEN 2:VIEW:CLS:P=0
1 VIEW (0,0) - (320,100):GOSUB 6
2 VIEW (321,0) - (639,100):GOSUB 6
3 VIEW (0,100) - (320,199):GOSUB 6
4 VIEW (320,100) - (639,199):GOSUB 6
5 INPUT “Ще (1- Д/2 –Н)”;T:ON GOTO 0:END
6 WINDOW (-46,-46)-(46,46)
7 LINE (0,-46)- (0,46):LINE (-46,0)- (46,0)
8 P=P+1:CIRCLE (0, 0), 18:PAINT(0, 0),1
9 LOCATE 2*7 ^ INT (P/3),43 ^ (SGN (INT (P/2)- P/2)+1)
10 PRINT “Window”; P:RETURN
Даний фрагмент за допомогою оператора WINDOW в кожному вікні екрану визначає декартову локальну систему координат, в якій будується еліпс з центром в початку цієї системи координат. Поряд з цим даний приклад ілюструє припинення дії оператора PAINT, який в попередньому подібному прикладі заповнював контур еліпса білим кольором.
