Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Тема 6 графічні методи




Вправи

Питання для роздумів

Могли б Ви самостійно довести справедливість наведених у цьому розділі правил булевої алгебри (правил винесення загального доданка і загального співмножника за дужки, правил де Моргана й інших)?

Могли б Ви самостійно визначити істинність виразу
(X > 5) Or (X = 0 And Y < 0) Or (Not (X >= Z))
для шести комбінацій значень величин X, Y, Z, наведених у табл. 6.5?

Табл. 6.5.
Номер X Y Z
      -10
    -10  
      -10
  -10    
  -10 -10  
  -10    

Як буде виглядати код 6.11, якщо замінити усі вхідні в нього оператори If Then Else операторами Select Case?

Скільки об'єктів класу Рамка і скільки об'єктів класу Кнопка-перемикач потрібно створити на екранній формі, щоб з їх допомогою вирішити задачу прикладу 6.11 про малювання різних геометричних фігур різного кольору?

Запрограмуйте додаток, за допомогою якого можна перевірити істинність виразу
(X > 5) Or (X = 0 And Y < 0) Or (Not (X > - Z))для будь-яких значень величин, що вводяться Вами, X, Y, Z (у тому числі і тих, що наведені в табл. 6.5).

Спроектуйте два варіанти додатка, що вирішує задачу приклада 6.11 — з використанням кнопок-перемикачів і з використанням двох текстових полів для вводу значень змінних Колір і Фігура. У першому випадку використайте в програмі умовний оператор If Then Else, а в другому — оператор Select Case?


5.1. Графічні методи Scale і PSet
5.2. Малювання відрізків і прямокутників за допомогою графічного метода Line
5.3. Метод Circle

У мові Visual Basic є так звані графічні засоби, до яких відносяться графічні методи (У даному випадку слово метод повинен розумітися не в широкому змісті (як прийом, спосіб чи спосіб дії), а в змісті, прийнятому в мові Visual Basic, — як вбудована процедура, що може працювати з яким-небудь об'єктом.) і графічні об'єкти (елементи керування). Нагадаємо, що деякі класи об'єктів (елементів керування) уже використовувалися в попередніх главах: це об'єкти Текстове поле, Мітка, Командна кнопка. Згадувався навіть один графічний об'єкт — Зображення (розд. 2.2).. Ці засоби наділяють процес проектування Windows-додатків і самі ці додатки багатьма цікавими і корисними можливостями.

Ми обмежимося використанням самих популярних графічних методів і об'єктів керування, без яких демонстрація основних конструкцій програм мовою Бейсік була б невиразна чи нецікава.

У цій главі будуть розглянуті синтаксис і семантика (Про те, що таке синтаксис того чи іншого елемента мови, було розказано в попередніх главах. Можна сказати, що синтаксис — це зовнішня форма, якою слід користуватися, щоб виразити щось даною мовою. А семантика — це внутрішній зміст, зміст, що вкладений у цю форму. У даному випадку, семантика методу — це зміст дії, що виробляється даним методом.) графічних методів, застосовуваних до того чи іншого об'єкта класу Екранна форма і Графічне вікно: методу Scale (для установки масштабу на даному об'єкті), методу PSet (для малювання на даному об'єкті «крапки» — маленької кольорової плями), методу Line (для малювання на даному об'єкті чи відрізку прямокутника), методу Circle (для малювання на даному об'єкті таких геометричних фігур як окружність, коло, еліпс, чи дуга сектор) і методу Cls для очищення даного об'єкта від усього намальованого чи надрукованого на ньому раніше. Слід зазначити, що всі перераховані графічні методи (за винятком методу Scale) дісталися мові Visual Basic у спадщину від більш ранніх діалектів мови Бейсік (наприклад, QBasic). У них вони називалися не методами, а графічними операторами.

Більш докладно в цій главі ми розглянемо і вже небагато знайомий Вам метод Print, що раніше застосовувався тільки до об'єкта Екранна форма. Хоча цей метод і не відносять до графічних, але в графічних програмах доводиться досить часто його використовувати. При кресленні графіків функцій, наприклад, метод Print застосовується для друку чисел, що розташовуються біля координатних осей.

У наступних главах при розгляді того, як мовою Visual Basic програмуються різноманітні процеси перетворення інформації, наприклад, умовні переходи чи циклічні процеси (повторення), графічні методи будуть використовуватися для демонстрації багатьох цікавих прикладів і задач.

5.1. Графічні методи Scale і PSet

Насамперед, уточнимо поняття метод.

Метод, як і властивість, а також як і подія, є однією з характеристик класу об'єктів Visual Basic. (Нагадаємо, що екранна форма — це теж об'єкт.)

Метод — це деяка дія, що може виконуватися Visual Basic над даним об'єктом (Іноді говорять також, що метод — це дія, що може робити сам об'єкт даного класу.). Ця дія виконується особливою, системною програмою Visual Basic. Цю програму часто теж називають методом. У результаті цієї дії (роботи системної програми) в об'єкті щось змінюється — наприклад, змінюється значення якої-небудь його властивості.

Графічний метод — це такий метод, що дозволяє зображувати на об'єкті даного класу який-небудь геометричний елемент, наприклад крапку, відрізок, прямокутник, окружність і т.д.

Про клас об'єктів говорять, що він має той чи інший метод (володіє тим чи іншим методом). Для кожного методу (у тому числі графічного) можна вказати ті класи об'єктів, що цим методом володіють. І навпаки, у кожного класу об'єктів є безліч методів, серед яких можуть бути і графічні. Щоб з'ясувати, якими методами володіє цікавлячий Вас клас об'єктів, Ви можете звернутися до Вікна перегляду характеристик, відкривши його, наприклад, кліком кнопки Object Browser на Головній панелі проекту (див. розд. ІІ 2.6), чи вибравши відповідну команду меню View. Потім Ви повинні знайти у списку Classes цей клас об'єктів — поруч з'явиться список з характеристиками цього класу об'єкта. У цьому списку може виявитися (а може і не виявитися) даний метод.

Розглянемо кілька графічних методів:

метод Scale (Scale— масштаб (англ.). Метод Scale називають також методом масштабування), за допомогою якого Ви можете задати на даному об'єкті придатну для Вашої задачі Декартову систему координат (Це система координат (у даному випадку, на площині екрана комп'ютера) із взаємно перпендикулярними осями — абсцис (віссю x) і ординат (віссю у). Декартовою вона названа на честь великого французького філософа і математика Рене Декарта (1596 — 1650).);

метод PSet (Від PointSet— помістити пляму (англ.).), за допомогою якого Ви можете зобразити на даному об'єкті крапку (Зрозуміло, це умовна «крапка» — дуже маленька кольорова пляма на екрані) у заданій (за допомогою методу Scale чи за замовчуванням) системі координат;

метод Line (Line— лінія, контур (англ.)), за допомогою якого Ви можете зобразити на даному об'єкті відрізок із заданими декартовими координатами його кінців, а також прямокутник із заданими декартовими координатами його кутів;

метод Circle (Circle— коло, окружність (англ.)), за допомогою якого Ви можете будувати на даному об'єкті окружності, кола й еліпси, дуги і сектори кіл і еліпсів із заданими координатами їхніх центрів, радіусами й іншими характеристиками;

метод Cls (Від CleanScreen— очистити екран (англ.)), за допомогою якого даний об'єкт цілком очищається від усього, що було побудовано на ньому з використанням перерахованих графічних методів чи методу Print.

У даному розділі розглянемо два перших методи з приведеного списку.

Метод Scale. Цей метод застосовується до об'єктів класів Екранна форма (Form) і Графічне вікно (PictureBox).

З першим з них Ви вже знайомі — по прикладах у попередніх главах. Об'єкт класу Графічне вікно — це новий для Вас елемент керування. Його можна створити за допомогою інструмента, що входить до складу стандартного набору інструментів Toolbox (Нагадаємо, що одним із способів відкриття Вікна інструментів є звертання до меню View і вибору в ньому команди Toolbox) Visual Basic.

— піктограма цього інструмента.

Об'єкти Form і PictureBox мають абсолютні координати — положення на екрані (об'єкти Form) чи положення на екранній формі (об'єкти PictureBox), a також розміри (ширину і висоту). Ці координати виміряються в особливих одиницях — твіпах. (Визначення цієї одиниці виміру дане в розд. ІІ3.1)

Абсолютні координати виражаються досить великими числами, що дуже незручно. Тому для рішення багатьох графічних задач, наприклад, для малювання чи фігур побудови графіків, доцільно задати нову систему координат. Ця система координат прив'язується до того об'єкта, на якому буде будуватися зображення (говорять також, що об'єкту призначається нова система координат).

Часто, наприклад, зручно вважати, що початок координат знаходиться посередині об'єкта, вісь Х, як це прийнято, спрямована вправо, а вісь Y — нагору.

Метод Scale вирішує задачу призначення об'єкту нової системи координат. Синтаксис методу такий:

[Ім’яОб’єкта.]Scale(X1,Y1) — (X2, Y2)

Ім’яОб’єкта може не бути. У цьому випадку за замовчуванням метод Scale використовується Екранною формою.

(X1, Y1) — нові координати лівого верхнього кута Об'єкта, a (X2, Y2) нові координати правого нижнього кута Об'єкта.

Відразу після виконання методу Scale старі (абсолютні) координати Об'єкта будуть замінені новими.

Приклад 5.1. Ви хочете, щоб об'єкт класу Графічне вікно з ім'ям Picturel, що Ви вже розмістили на екранній формі, мав ширину 14 (в умовних одиницях), висоту 10 і щоб координатні осі розташовувалися звичним для Вас чином: вісь X була б спрямована зліва направо, а вісь Y — знизу нагору, а початок координат розташовувалося в центрі даного об'єкта (мал. 5.1).

Мал. 5.1. Бажане розташування осей координат на об'єкті Графічне вікно

Зробити це можна за допомогою наступного рядка програмного коду:

Код 5.1
Picture1.Scale (-7, 5) — (7, -5)

У Visual Basic є й інший спосіб призначити об'єкту нову систему координат.

Замість застосування методу Scale можна скористатися установкою значень властивостей об'єкта з категорії Scale (мал. 5.2).

Мал. 5.2. Установка значень властивостей категорії Scale об'єкта Графічне вікно

Насамперед варто встановити значення властивості ScaleMode рівним 0 (User).

Потім встановлюються значення властивостей ScaleWidth (Ширина об'єкта — різниця координат правого і лівого країв об'єкта), ScaleHeight (Висота об'єкта — різниця координат нижнього і верхнього країв об'єкта), ScaleLeft (Лівий край — координата лівого краю об'єкта) і ScaleTop (Верхній край — координата верхнього краю об'єкта).

На мал. 5.2 Ви бачите значення перерахованих властивостей для приклада 5.1. Зверніть увагу на те, що значення властивості Висота об'єкта від'ємне число! Це випливає з визначення цієї властивості як різниці координат нижнього і верхнього країв об'єкта: у даному випадку ця різниця дорівнює (-5) — 5 = -10. А от значення властивості Ширина об'єкта додатнє/позитивне: 7 — (-7) = 14.

Метод PSet. Цей метод застосовується до тих же об'єктів, що і метод Scale.

Синтаксис методу наступний:

[Ім’яОб’єкта.]PSet(X, Y) [, Колір]

І’мяОб’єкта може не бути. У цьому випадку за замовчуванням метод PSet використовується Екранною формою.

(X, Y) — координати «крапки» (говорячи більш точно — маленької кольорової плями на екрані), що (яку) Ви хочете зобразити на Об'єкті.

Колір — це вираз, значенням якого є число типу Long. Цим числом у Visual Basic кодується той чи інший колір. Зручно як колір використовувати константи Visual Basic: vbWhite, vbRed, vbGreen, і т.д. Більш докладно питання про завдання кольору в мові Visual Basic буде розглянуто у розд. 5.2.

Колір може бути відсутнім. У цьому випадку за замовчуванням його значенням буде 0 — код чорного кольору.

Якщо перед виконанням методу PSet метод Scale не застосовувався, то як координати X і Y будуть використовуватися абсолютні координати Об'єкта.

Очевидно, що інтерес представляє малювання не однієї крапки, а великої кількості крапок. Гарним прикладом такого малювання служить побудова графіків функцій. Використання методу PSet для побудови графіків функцій буде розглянуте в гл. 7.

Приклад 5.2. За допомогою методу PSet на екранній чи формі в графічному вікні легко намалювати ділянку зоряного неба, наприклад, сузір'я Великої Ведмедиці (Мал.5.3).

Мал. 5.3. Результат роботи коду 5.2

7 зірок цього сузір'я — це 7 білих «крапок» на чорному фоні об'єкта Графічне вікно, намальованих за допомогою методу PSet (код 5.2).

Код 5.2

Зображення зірок — це, звичайно, не крапки, а плями і досить великі. Їхній розмір можна легко змінити — для цього варто встановити потрібне значення властивості DrawWidth (DrawWidth — буквально: ширина креслення, малювання (англ.).) об'єкта Picture l. Значенням властивості DrawWidth може бути ціле число (1, 2, 3,...). Для зображення на мал. 5.3 це значення дорівнює 2. А для зображення на мал. 5.4 воно дорівнює 20.

Мал. 5.4. Зміна розмірів «крапок» зображених за допомогою зміни значення DrawWidth

Змінити зазначене значення можна або за допомогою Вікна властивостей, або вставивши в програмний код рядок:
Picture1.DrawWidth = 3

Нові поняття:

метод, графічний метод, метод Scale (масштабування), метод PSet (зображення «крапки»), об'єкт Графічне вікно.

Питання для роздумів

Як Ви думаєте, який із двох способів масштабування об'єкта кращий — за допомогою рядка програмного коду чи за допомогою установки значень декількох властивостей об'єкта?

А який спосіб установки величини «крапки» у методі PSet Вам більше подобається — за допомогою рядка програмного коду чи за допомогою установки значення властивості DrawWidth об'єкта?

Як Ви думаєте, що потрібно зробити для того, щоб не тільки величина, але і колір зірок у прикладі 5.2 був різним?

Вправи

На екранній формі три об'єкти: командна кнопка з ім'ям ПУСК і два графічних вікна з іменами Picture l і Picture 2. Перші рядки програмного коду виглядають так:

Допишіть рядки, що залишилися, так, щоб за допомогою даної програми будувалося зображення, показане на мал. 5.5.

Мал. 5.5 Зображення в двох графічних вікнах, побудовані за допомогою методу PSet

Змініть програмний код 5.2 так, щоб зірки були різної величини, наприклад, так, як показано на мал. 5.6.

Мал. 5.6. За основу візьміть код.5.2



Поделиться с друзьями:


Дата добавления: 2014-12-23; Просмотров: 724; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.