Оператор CIRCLE
Оператор CIRCLE дозволяє малювати коло у будь-якім місці екрана. Форма запису цього оператора:
CIRCLE (Х _центр, Y_центр), радіус — абсолютна форма CIRCLE STEP (X _центр, Y_центр), радіус — відносна форма, де Х _центр, Y_центр — координати або зміщення центру кола; радіус — радіус кола. Наступна програма є простим прикладом використання даного оператора:
REM Програма 3 REM Малювання окружності SCREEN 2 CLS CIRCLE (100,100),25 END Отримане коло з центром у точці з координатами (100,100) має радіус 25 точок. Радіусом кола називається відстань від центра до будь-якої його точки. Радіус не може мати від’ємне значення. Якщо як радіус задане від’ємне значення, QBASIC інтерпретує його як помилку і відразу виводить повідомлення Illegal function call (Неправильний виклик функції).
Малювання прямокутників
Що робити, якщо створюване зображення містить прямокутник? Звичайно, можна намалювати прямокутник за допомогою операторів LINE, повторюючи його чотири рази для малювання чотирьох сторін, але можна для цього вибрати більш простий шлях. Гляньте на наступну форму запису оператора LINE: LINE (X_початок, Y_початок) - (Х_діагональ, Y_діагональ), колір, B[F] де В — параметр, що вказує на малювання прямокутника; bf — параметр, що вказує на малювання зафарбованого прямокутника; (Х_початок, Y_початок) — координати лівого верхнього кута прямокутника; (Х_діагональ,Y_діагональ) — координати правого нижнього кута прямокутника. Приклад: 'Програма4. Малювання прямокутників SCREEN 1 CLS LINE (10,20) - (135,20), 3 LINE (150, 20) – (200, 45), 3, B LINE (230, 20) - (280, 45), 3, BF END У випадку пропуску якого-небудь параметра чи параметрів, ви повинні зберегти необхідну їх кількість розділовими комами. Коло, дуга, еліпс і сектор
Щоб намалювати дугу, еліпс чи сектор кола, вам необхідно додати нові параметри в оператор CIRCLE. Ви поки знайомі тільки з короткою формою запису даного оператора. Його повна форма виглядає в такий спосіб: CIRCLE (X,Y), радіус, колір, початок, кінець, коефіцієнт,
де X, Y — координати центра кола, радіус — радіус кола; колір — її колір; початок —початкова точка дуги,задана у радіанах; кінець — кінцева точка дуги, задана в радіанах; коефіцієнт — відношення значень Y-радіуса і Х-радіуса. Для малювання кола використовуються тільки параметри X, Y і радіус. Для малювання дуги вам необхідно додати значення параметрів початкової і кінцевої точок. Дуга визначається кутом, що вирізує її з відповідного кола. Значення параметрів початок і кінець задаються у радіанах і повинні мати значення між 0 і 2 радіан (2 = 6.28). QBASIC при малюванні дуг веде відлік від початкової точки дуги до кінцевого в напрямку проти годинникової стрілки. Це необхідно знати для визначення правильного порядку в завданні початку і кінця дуги. Приклад: REM Програма 5 REM Малювання кола, дуги і сектору SCREEN 2 CLS CIRCLE (100,100), 30 CIRCLE (180,100), 30, 3, 1, 2 CIRCLE (260,100), 30, 3, -2, -1 ЕND Якщо одному з параметрів (початку чи кінцю) значення неприсвоюється, воно вважається рівним нулю При негативних значеннях цих параметрів QBASIC з'єднуєпочаткові і кінцеві точки дуги з центром відповідного кола. Якщо від’ємним є значення тільки одного параметра, то і з'єднуватися з центром кола буде тільки одна точка дуги. Для малювання еліпса потрібно ввести в оператор CIRCLE коефіцієнт відносини радіусів по осях Y і Х. Цей параметр визначає ступінь стиснення еліпса і може мати будь-яке додатне значення. Якщо параметр коефіцієнт опущений чидорівнює 1,виходить зображення кола. При від’ємному значенні параметра ви отримаєте повідомлення про помилку. Наступний приклад демонструє малювання еліпсів. REM Програма 6 REM Малювання еліпсів SCREEN 2 CLS CIRCLE (50, 90), 30 CIRCLE (150, 90), 30,,,, 0.3 CIRCLE (250, 90), 30,,,, 1.5 END
Наступна програма представляє оператор CIRCLE з використанням різних параметрів (рис. 17.1). REM Програма 7 REM Малювання мордочки SCREEN 1 CIRCLE (100, 100), 70 ' Обличчя CIRCLE (75, 75), 10,,,,.2 ' Очі CIRCLE (125, 75), 10,,,,.2 CIRCLE (100, 100), 5,,,, 2 ' Ніс LINE (100, 40)-(90, 60) ' Волосся LINE (100, 40)-(110, 60) LINE (100, 40)-(100, 60) CIRCLE (100, 110), 20,, 3.14, 0 ' Посмішка END
|