Інформатика

Безкоштовно

Зараховано 2 учнів

Урок 37. Відображення базових графічних примітивів. Відображення рисунків із зовнішніх файлів.

Прочитай:

Комп’ютерна графіка – розділ інформатики, який вивчає технології опрацювання графічних зображень за допомогою комп’ютерної техніки.

Залежно від способу побудови графічного зображення розрізняють растрові та векторні графічні зображення.

Растрове графічне зображення складається з окремих маленьких прямокутників – пікселів. Ви знайомі з інструментами побудови растрових зображень редактора растрової графіки Paint.

Векторне графічне зображення будується з окремих базових об’єктів – графічних примітивів: відрізків, многокутників, кривих, овалів тощо. У ході вивчення текстового редактора Word, програми для створення презентацій MS PowerPoint ви дізналися про способи формування зображень із геометричних примітивів, поняття й принципи побудови векторних зображень, способи зафарбовування об’єктів, встановлення параметрів контура і заливки.

(adsbygoogle = window.adsbygoogle || []).push({});

Графічні примітиви – це елементи простої форми, з яких будують більш складні зображення.

Будь-який малюнок або креслення можна розглядати як сукупність графічних примітивів: крапок, ліній, кіл, дуг та ін. Для того щоб на екрані з’явився малюнок, програма повинна забезпечити креслення кожного з графічних примітивів, з яких він складається.

Чи можна  виводити на екран графічні зображення за допомогою програм, створених в  середовищі Lazarus.

На даному уроці ми  дізнаємося як:

  • Як намалювати лінію, прямокутник, сектор, ламану, еліпс засобами мови програмування
  • Як вивести на екран створені фігури

Графіка в Lazarus

У Lazarus для промальовування різних елементів графіки використовується спеціальний клас TCanvas.

Поверхні, на яку програма може виводити графіку, відповідає властивість Canvas. У свою чергу, властивість canvas — це об’єкт типу TCanvas. Методи цього типу забезпечують виведення графічних примітивів (крапок, ліній, кіл, прямокутників і т. д.), а властивості дозволяють задати характеристики графічних примітивів, що виводяться: колір, товщину і стиль ліній; колір і вид заповнення областей; характеристики шрифту при виведенні текстової інформації.

Методи виведення графічних примітивів розглядають властивість Canvas як деяке абстрактне полотно, на якому вони можуть малювати (canvas переводиться як “поверхня”, “полотно для малювання”). Полотно складається з окремих крапок — пікселів. Положення піксела характеризується його горизонтальними (X) і вертикальними (Y) координатами. Лівий верхній піксел має координати (0, 0). Координати зростають зверху вниз і зліва направо (див. мал). Значення координат правої нижньої точки полотна залежать від розміру полотна.

Основна властивість цього об’єкта Canvas Lazarus  –  Pixels[i , j ] типу TColor , тобто це двомірний масив крапок, що задаються певним кольором.

Малювання на  канві відбувається в момент присвоювання якій-небудь  точці канви значення кольору, відмінного від кольору тла. Кожній точці – пікселю може бути присвоєний довільний колір Windows – палітри (див. таблицю кольорів).

Наприклад команда:

Image1. Canvas.Pixels [ 100 , 100 ]: =  clRed;

промалює червону точку з координатами [100, 100].

Дізнатися колір пікселя можна  зворотним присвоюванням:

Color : = Image1.Canvas.Pixels [100, 100] ;

 

 Таблиця кольорів Windows –палітри

Колір Константа
Блакитний clAqua
Чорний clBlack
Синій clBlue
Рожевий clFuchsia
Зелений clGreen
Салатовий clLime
Каштановий clMaroon
Темно – синій clNavy
Оливковий clOlive
Фіолетовий clPurple
Червоний clRed
Сріблястий clSilver
Зелено – блакитний clTeal
Білий clWhite

Команди для малювання графічних примітивів на координатній

площині форми

Команда Пояснення Приклад
Canvas.MoveTo (x, y) Вибір на формі точки малювання ліній (x, y), з якої буде розпочинатися малювання Намалювати відрізок від точки (20, 20) до точки (100, 20).

Canvas.MoveTo (20, 20);

Canvas.LineTo (100, 20);

Canvas.LineTo (х, у) Малювання відрізка від останньої точки, у якій відбувалось малювання, до точки (х, у). Використання послідовно кількох таких команд приведе до малювання відрізка або ламаної
Canvas.Rectangle (х1, у1, х2, у2) Малювання прямокутника, у якого протилежні вершини розміщені в точках (х1, у1) та (х2, у2), а сторони паралельні осям координат

 

 

 

Намалювати квадрат із довжиною сторони 100 пікселів:

Canvas.Rectangle (20,30,120,130);

 

Canvas.Ellipse (х1, у1, х2, у2) Малювання еліпса, вписаного у прямокутник, у якого протилежні вершини розміщені в точках (х1, у1) та (х2, у2), а сторони паралельні осям координат. Прямокутник при цьому не відображається Намалювати еліпс, вписаний  в прямокутник із довжиною сторони 80 пікселів і шириною 60 пікселів:

Canvas.Ellipse (20, 20, 100, 80)

Canvas.Pie (х1, у1, х2, у2, х3, у3, х4, у4) Малювання замкненої фігури – сектора еліпса. Точки (х1, у1) та (х2, у2) задають прямокутник, у який вписано еліпс. Початкова точка дуги визначається перетином еліпса з прямою, що проходить через його центр і точку (х3, у3). Кінцева точка дуги визначається перетином еліпса з прямою, що проходить через його центр і точку (х4, у4). Дуга малюється проти годинникової стрілки від початкової до кінцевої точки Намалювати сектор еліпса, вписаний  в прямокутник із довжиною сторони 80 пікселів і шириною 60 пікселів, початкові координати дуги (60, 20) а кінцева точка (80,80):

 

Canvas.PolyLine ([Point (x1,y1), Point(x2,y2), …]); Малювання ламаної лінії. Метод РоlуLіnе малює ламану лінію за точками, що задані масивом точок.

 

Намалювати ламану лінію за п’ятьма точками, заданими координатами.

Canvas.Polyline ([Point (10,10), Point (30,100), Point (50,10), Point (70,100), Point

(90,10)]);

Canvas.Polygon([Point (x1,y1), Point(x2,y2), …]); Малювання багатокутника по точкам, заданим в масиві. Кінцева точка з’єднується з початковою і багатокутник заповнюється  пензлем. Для креслення без заповнення використовується метод ламаної лінії.

 

Canvas.Polygon ([Point (10,10), Point

(30,100), Point (50,100), Point (70,100), Point

(90,10)]);

 

(adsbygoogle = window.adsbygoogle || []).push({});

 

Властивості форми для встановлення значень властивостей контуру та внутрішньої області графічних примітивів

Властивість Призначення та приклади значень Значення за замовчуванням
Canvas.Pen.Color Колір лінії контуру Чорний
Canvas.Pen.Width Товщина ліній контуру 1 піксель
Canvas.Brush.Color Колір заливки внутрішньої області Білий

 

Ми розглянули лише частину методів для побудови графічних примітивів, але їх достатньо для того, щоб будувати складні малюнки.

Пам’ятайте, що їх можна застосовувати для всіх компонентів, які мають властивість  Canvas.

Для того щоб малюнок відображався на формі одразу після запуску проекту на виконання, потрібно команди малювання розміщувати у процедурі – обробнику подій Paint для форми.

ВИКОНАЙ:

  1. Намалюй трикутник, зафарбований зеленим кольором зі сторонами червоного кольору.

Інструкції до виконання

  • Завантажте середовище програмування.
  • Виконайте збереження проекту використовуючи команду Зберегти всі з меню Файл.  Всі файли зберігаємо у новостворену папку на Графічні примітиви.
  • Змініть заголовок форми на напис Трикутник.
  • Для малювання фігур використовуємо процедуру TForm1.FormPaint. Для кожної фігури окремо встановлюються властивості “Пензель” і “Олівець”.
  • Перейдіть на  закладинку Інспектора  об’єктів, що містить список подій і знайдіть у списку  обробник OnPaint. Виконайте подвійний клік мишею у полі і запишіть код процедури.
procedure TForm1.FormPaint(Sender: TObject);
begin
Canvas.Pen.Color := clRed;
Canvas.Brush.Color := clGreen;
Canvas.Polygon ([Point (150,50), Point (50,250), Point (250,250), Point (150,50)]);
end;
  • Протестуйте та збережіть проект.

 

  1. Наберіть код програми. Зверніть увагу, що виконання програми відбувається після натиснення на кнопку. Протестуйте. Проаналізуйте частини коду та додайте коментарі з поясненням, які частини малюнка зображуються відповідними елементами програми.

 

Інструкції до виконання

procedure TForm1.Button1Click(Sender: TObject);
begin
Canvas.Brush.Color := clGray;
Canvas. Rectangle(10,100,250,300);  // корпус
Canvas. Polygon([Point(0,100),Point(130,20),Point(260,100)]); // дах
Canvas. Brush.Color := clWhite;
Canvas. Ellipse(110,40,150,80); // горище
Canvas. Rectangle(30,150,110,230);   // вікно
Canvas. MoveTo(70,150);
Canvas. LineTo(70,230);
Canvas. Rectangle(150,300,230,150);  // двері
Canvas. Brush.Color := clGray;
Canvas.Polygon([Point(150,300), Point(150,150), Point(210,160), Point(210,300)]);
end;

Збережіть складові проекту.

  1. Створити програму, яка виводить на екран зображення, що демонструє побудову на канві різних геометричних фігур із застосуванням до них заливок, а також відображення тексту на канві.

Домашнє завдання:

Морзе Н. В.  Барна О. В. Вембер  В.П. Інформатика: підручник для 8 кл., п.27, завдання 3 ст. 191

Ривкінд Й.Я., Лисенко Т.І., Чернікова Л.А., Шакотько В.В. Інформатика підручник для 8 класу, п.6.8 ст. 221-224, завдання 4 ст. 227

0.00 на основі 0 рейтингів

5 зірок
0%
4 зірок
0%
3 зірок
0%
2 зірок
0%
1 зірок
0%