Розробка графічного редактора

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Міністерство освіти і науки України

Пояснювальна записка

до курсового проекту на тему "Розробка графічного редактора"

по курсу "Об'єктно-орієнтоване програмування"

2005

Зміст

Введення

Постановка завдання

Опис проектного рішення

Програмна реалізація

Керівництво користувача

Тестування програми

Критерії якості розробки ПС

Висновок

Бібліографічний список

Введення

У записці наведений опис програми, розробленої відповідно до завдання на курсове проектування по темі "Розробка графічного редактора" з дисципліни "Об'єктно-орієнтоване програмування". Програма призначена для створення і редагування графічних файлів за допомогою різних інструментів малювання.

При об'єктно-орієнтованому програмуванні необхідно дотримуватися наступних принципів:

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

- Ієрархія і класифікація, тобто всі об'єкти одного класу використовують одні методи у відповідь на однакові повідомлення.

Спадкування - здатність створювати нові типи повторно,

використовуючи опис вже існуючих типів

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

- Інкапсуляція тобто розглядаючи об'єкти як вищий рівень абстракції даних і поділ його на частини, отримуємо, що відношення частин до цілого і взаємини між частинами стають зрозумілішими тоді, коли всі міститься разом як єдине ціле.

Розробка редактора вироблялася в Delphi 5, тому що дана середу в повній мірі відображає всі достоїнства об'єктно-орієнтованого підходу, дозволяє створювати нові класи та використовувати бібліотеку вже створених стандартних класів Delphi 5. Середа зручна для розробки. Інтерфейси, створювані Delphi, наочні і прості для використання.

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

Вимогою до апаратного і програмного забезпечення є наявність будь-якого IBM-сумісного комп'ютера з накопичувачем на гнучких і жорстких магнітних дисках і достатньою кількістю оперативної пам'яті. На комп'ютері повинна бути встановлена ​​операційна система, сумісна з Windows 3.x.

1 Постановка завдання

Мета цієї курсової роботи - проектування і програмна реалізація системи, яка відповідно до заданого варіантом реалізує процеси створення та взаємодії групи об'єктів.

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

За варіанту завдання на базі об'єктного підходу необхідно спроектувати та розробити модель системи, що працює з графікою по заданому плану. Постановка завдання передбачає розробку багатофункціонального графічного редактора зі стандартними функціями видалення (стирання) фігур, малювання, вставки готових образів, накладення фігур, розтягування (стиснення) та ін Система повинна бути витримана в єдиному стилі і забезпечена довідкової підсистемою із зазначенням можливостей.

2 Опис проектного рішення

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

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

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

створення малюнків з допомогою ліній (олівця), кисті різної товщини, спрею (об'єкт, який створює ефект напилення пікселів на певну невелику область малюнка);

виведення тексту на редагований малюнок;

стирання будь намальованою картинки;

а також реалізовано копіювання, вставка а також збереження зображення у форматі *. bmp.

Об'єктно-орієнтований аналіз та проектування не можна визначити ні як проектування зверху вниз, ні як проектування знизу вгору; його можна швидше назвати «поворотним проектуванням», що має на увазі ступінчастий процес розробки системи з поступовою модифікацією різних, але, тим не менш, узгоджених між собою логічних та фізичних уявлень про систему в цілому.

Створена система в процесі діяльності може бути представлена ​​рядом станів, які здійснюють ті чи інші дії. У системі можна виділити деякий початковий стан і кінцеве, завершальне роботу стан. Аналіз системи слід почати з життєвого циклу - малюнок 2.1.

Малюнок 2.1 - Життєвий цикл системи

На малюнку 2.1 прийняті наступні позначення:

1 - обраний інструмент лінія, олівець, геометрична фігура або текст;

2 - обраний інструмент кольору;

3 - обраний інструмент геометрична фігура;

4,5,6,7,8,9 - обраний інструмент лінія, олівець, геометрична фігура або текст;

10 - обрана певна товщина лінії;

11 - деякий етап малювання завершено, необхідно зберегти малюнок;

12 - малюнок збережений, необхідно продовжити малювання;

13 - редагування або малювання завершене, вихід з програми;

14 - відредагований або намальований малюнок збережений, завершення роботи.

15 - вибір іншого інструмента, редагування;

16 - малюнок збережений, редагування;

17 - обраний певний тип заповнення;

З малюнка 2.1 видно, що початковим етапом є створення нового або відкриття вже існуючого малюнка. Коли малюнок створений, можна здійснювати його редагування, збереження під новим ім'ям або у вже створеному файлі. Для редагування розроблено ряд інструментів, які здійснюють різні функції:

олівець;

ластик;

заливка;

розпилювач;

малювання прямокутників;

малювання округлених прямокутників;

малювання окружностей;

малювання ліній;

малювання піраміди.

малювання ромбів;

введення тексту;

Існують також інструмент вибору кольору інструменту і кольору заливки.

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

Малюнок 2.2 - Інформаційна модель взаємодії об'єктів Ф і З

Малюнок 2.3 - Інформаційна модель взаємодії об'єктів Ф, З, F, G

Взаємодія об'єктів кнопка "фігура" і кнопка "заповнення" показано на діаграмі переходів станів (рисунок 2.4).

Рисунок 2.4 - Моделі станів для кнопок "фігура" та "заповнення"

Так як більшість дій у системі здійснюється відповідно до подіями від миші, то основні вхідні дані для системи - це поточні координати і самі події MouseDown, MouseUp, MouseMove.

Діаграма потоків даних наведена на малюнку 2.5.

Рисунок 2.5 - Діаграма потоків даних

Так як не було необхідності у проекті створювати спеціальні класи для реалізації об'єктів, то в ієрархії класів будуть наведені основні класи середовища Delphi, що використовуються для

реалізації основних можливостей проекту і їх опис.

Ієрархія використовуваних графічних класів зображена на малюнку 2.6.

Малюнок 2.6 - Ієрархія класів

3. Програмна реалізація

Згідно з умовою задачі, виконані наступні пункти:

Використовуючи основні класи середовища Delphi, були реалізовані основні можливості редактора для створення малюнків;

2) Редагування різних графічних зображень;

Запам'ятовування картинок у файлах формату *. bmp.;

Реалізований зручний користувальницький інтерфейс, який кожен користувач може коригувати за своїм бажанням.

При вирішенні завдання побудови графічного редактора був використаний об'єктно-орієнтований підхід. Його перевага перед структурним підходом полягає в наступному:

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

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

Досягається певний рівень абстракції, що допомагає при розробці складних програм, тому що дозволяє йти від простого до складного, від загального до приватного, а також призводить до такого потужного засобу створення класів, як наслідування.

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

Дана програма написана в середовищі Delphi 5 згідно з основними принципами об'єктно-орієнтованого програмування; об'єктний стиль програмування фіксує поведінку реального світу таким способом, при якому деталі його реалізації приховані.

При проектуванні складної програмної системи необхідно складати її з невеликих підсистем, кожну з яких можна налагодити незалежно від інших. У цьому випадку при розробці будь-якого рівня системи нам необхідно буде одночасно тримати в голові інформацію лише про небагатьох її частинах. Існують два способи декомпозиції складної програмної системи:

- Алгоритмічна декомпозиція - поділ алгоритмів за методом «зверху донизу» і відповідає структурному проектуванню, де кожен модуль системи виконує один з важливих етапів загального процесу. Результат структурного проектування можна представити у вигляді дерева підпрограм.

- Об'єктно-орієнтована декомпозиція - як критерій декомпозиції системи використовується приналежність її елементів до різних абстракцій даної предметної області.

Програма складається з основного модуля Unit1, що здійснює синхронізацію процесу обробки даних і взаємодія конкретних екземплярів конкретних об'єктів; модуля Unit2, в якому міститься клас Form2, за допомогою якого задається розмір малюнка; модуля Unit3, в якому міститься клас Form3, за допомогою якого виводиться вікно "Про програму ...".

Модуль Unit1 просто дополненять і модифікувати. Зокрема, не представляє ніяких труднощів додати нові види інструментів, додавши їх у тип TDrawingTool і задавши для них відповідні дії в процедурі DrawShape.

DrawShape є найбільш функцмональной процедурою і управляє роботою практично всієї системи. Події відбуваються в залежності від обраного інструменту (це відбивається у змінній Drawingtool). Події OnMouseDown, OnMouseMove, OnMouseUp викликають процедуру і далі вона виробляє всі дії. При натисканні кнопки миші (OnMouseDown) починається промальовування графічного об'єкта, при русі миші (OnMouseMove) об'єкт промальовується відповідно до зміни координат покажчика миші, коли кнопку відпускають (OnMouseUp) промальовування закінчується.

Процедура DrawShape описана в розділі public основного класу TForm1, що дозволяє використовувати її в будь-якому модулі програми

Опис методу TForm1.DrawShape:

procedure TForm1.DrawShape (TopLeft, BottomRight: TPoint; AMode: TPenMode);

var i: integer;

begin

with image1.Canvas do

begin

Pen.Mode: = amode;

case DrawingTool of

dtHandle: / / ОЛІВЕЦЬ

begin

Pen.Mode: = pmcopy;

image1.Canvas.Pixels [topleft.x, topleft.y]: = colordialog1.Color;

image1.Canvas.LineTo (BottomRight.X, BottomRight.Y);

end;

dtLine: / / МАЛЮВАННЯ ЛІНІЇ

begin

image1.Canvas.MoveTo (TopLeft.X, TopLeft.Y);

image1.Canvas.LineTo (BottomRight.X, BottomRight.Y);

end;

dtPolyline: / / ПІРАМІДА

begin

image1.Canvas.Polyline ([origin, movept, point (spinedit1.Value, spinedit2.Value)]);

end;

dtSpray: / / Розпилювачі

begin

Pen.Mode: = pmcopy;

for i: = 1 to 20 do

begin

image1.Canvas.Pixels [BottomRight.X + random (20),

BottomRight.Y + random (20)]: = colordialog1.Color;

end;

end;

dtFonty: / / ВИСНОВОК ТЕКСТУ

begin

image1.Canvas.TextOut (bottomright.x, bottomright.y, edit1.Text);

end;

dtRomb: / / РОМБ

begin

image1.Canvas.MoveTo (topleft.x + ((bottomright.x-topleft.x) div 2), topleft.y);

image1.Canvas.LineTo (bottomright.x, bottomright.y-((bottomright.y-topleft.y) div 2));

image1.Canvas.MoveTo (topleft.x + ((bottomright.x-topleft.x) div 2), topleft.y);

image1.Canvas.LineTo (topleft.x, topleft.y + ((bottomright.y-topleft.y) div 2));

image1.Canvas.LineTo (topleft.x + ((bottomright.x-topleft.x) div 2), bottomright.y);

image1.Canvas.LineTo (bottomright.x, bottomright.y-((bottomright.y-topleft.y) div 2));

end;

dtRectangle: / / МАЛЮВАННЯ ПРЯМОКУТНИК

image1.Canvas.Rectangle (TopLeft.X, TopLeft.Y, BottomRight.X,

BottomRight.Y);

dtEllipse: / / МАЛЮВАННЯ ЕЛІПС

image1.Canvas.Ellipse (Topleft.X, TopLeft.Y, BottomRight.X,

BottomRight.Y);

dtGum: / / Гумка

begin

Pen.Mode: = pmcopy;

pen.Color: = clwhite;

pen.Width: = 10;

image1.Canvas.Pixels [topleft.x, topleft.y]: = clwhite;

image1.Canvas.LineTo (BottomRight.X, BottomRight.Y);

end;

dtBottle: / / ЗАЛИВКА

image1.Canvas.FloodFill (topleft.x, topleft.y, image1.Canvas.Pixels [topleft.x, topleft.y],

fssurface);

dtRoundRect: / / МАЛЮВАННЯ Округляє ПРЯМОКУТНИК

image1.Canvas.RoundRect (TopLeft.X, TopLeft.Y, BottomRight.X, BottomRight.Y, (TopLeft.X - BottomRight.X) div 2,

(TopLeft.Y - BottomRight.Y) div 2);

end;

end;

end;

Повний текст всіх модулів наведено у Додатку А.

Були використані методи класу Tpicture:

LoadFromFile - Завантажити зображення з файлу

SaveToFile - збереження зображення у файлі,

Ці методи за замовчуванням виводять діалогові вікна за допомогою яких легко відкривати і зберігати графічні файли.

При створенні малюнка в програмі використовується об'єкт Bitmap: Tbitmap, який створюється конструктором Bitmap.Create, а потім знищується за допомогою процедури Bitmap.Free. Bitmap.Free автоматично викликає деструктор об'єкта, якщо об'єкт инициализирован, а якщо об'єкт не створено, то деструктор не викликається, що забезпечує коректну роботу програми.

При написанні програми були дотримані основні рекомендації стандартного оформлення текстів програм. Відповідність стандартам полягає в наступному:

Складання ідентифікаторів здійснюється так, щоб по ним було зрозуміло їх основне призначення (приклад: і т.д.).

Використовуються «форматує прогалини» для підвищення зручності читання програми.

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

Використання об'єктно-орієнтованого підходу забезпечує розширюваність.

Стійкість до неправильних вхідних даних - неможливість завдання неправильних даних.

4 Керівництво користувача

Програма поставляється у вигляді виконуваного ЕХЕ файлу, запускається під управлінням ОС Windows 9X, не вимагає великої кількості системних ресурсів. Має зручний користувальницький інтерфейс і досить широкі можливості для малювання, перегляду і редагування зображень.

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

У заголовку головного вікна міститься інформація про редагованому малюнку:

ім'я малюнка,

шлях,

розмір малюнка в пікселях.

Головне меню містить підпункти:

- Створити,

відкрити,

зберегти,

зберегти як,

вихід.

Кожен підпункт забезпечений стандартною комбінацією "гарячих" клавіш, які викликають ту чи іншу дію:

створити Ctrl + N,

відкрити Ctrl + O,

зберегти Shift + F12,

зберегти як Ctrl + S,

вихід F10.

Пункт головного меню правка містить команди для роботи з буфером:

вирізати Shift + Del,

копіювати Ctrl + Insert,

вставити Shift + Incert.

Підпункт "Про програму ..." - містить довідку про цю програму.

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

У редакторі можна з великими зручностями переглядати і пересохранять існуючі зображення. Ця Фунція викликається при натисканні кнопки "Перегляд і вибір", яка робить видимою панель на якій розміщені елементи "Вибір диска", "Вибір директорії", "Вибір типу файлу", "Вибір файлу".

Основні елементи панелі інструментів виконують такі дії:

олівець - малювання з урахуванням обраного кольору, і товщини лінії;

ластик - намагання будь-якого виду малюнка

заливка - заливання обраної області, з урахуванням обраного кольору;

спрей - розпорошення точок у певній галузі, з урахуванням обраного кольору;

окружність - малювання різних кіл і еліпсів, з урахуванням обраного кольору, виду заповнення;

прямокутник - малювання квадратів і прямокутників, з урахуванням обраного кольору, виду заповнення;

округлений прямокутник - малювання квадратів і прямокутників з округленими вершинами, з урахуванням обраного кольору, виду заповнення;

ромб - малювання ромбів, з урахуванням обраного кольору, виду заповнення;

піраміда - малювання піраміди, з вершиною задається координатами Х та Y у правому нижньому кутку редактора, з урахуванням обраного кольору;

висновок тексту - висновок на малюнок тексту вибраного шрифту і кольору, в обрану точку;

5 Тестування програми

Саме реалістичне тестування програми проходило при її налагодженні, при тестуванні перевірялися функціональні можливості підсистем і окремих інструментів. Потім здійснювався збір всіх інструментів і вироблялося системне тестування. З метою тестування в даному редакторі створювалися графічні зображення за допомогою багаторазового використання різних інструментів. Перевірялася робота редактора при зміні кольору, товщини і виду ліній, а також при зміні стилю заповнення різних фігур.

У редакторі можна зробити корекцію вже створених файлів, що містять растрові зображення.

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

6. Критерії якості розробки програмної системи

Критерії якості розробки програмної системи:

відповідність завданням і вибраним обмежень;

ефективне використання об'єктного підходу;

стиль програмування;

стилізація;

дизайн.

Оскільки по суті варіанти завдань на курсове проектування є лише канву тих чи інших описів поведінки одиночних об'єктів або їх груп, то дана робота відповідає вибраним обмеженням, і відображає суть завдання, кілька розширюючи його.

ООП-підхід позбавлений недоліків структурного програмування, яке не дозволяє виділяти абстракції, не має достатніх коштів для організації паралелізму, отже, ускладнює створення досить складних систем. ООП-підхід, крім того, економить мислення розробника - не потрібно тримати в пам'яті великий обсяг інформації про структуру програми.

Об'єктно-орієнтоване програмування базується на успадкування, інкапсуляції і поліморфізм. Реалізуючи заданий варіант, вдалося обійтися мінімальною кількістю класів і об'єктів та їх вкладеності.

Створений редактор має зрозумілий і простий у використанні інтерфейс, стандартне для Windows оформлення.

Висновок

У ході виконання курсового проекту закріплені поняття об'єктно-орієнтованого програмування, об'єктно-орієнтованого аналізу і об'єктно-орієнтованого підходу, навички з програмування в об'єктно орієнтованої середовищі.

Програма, описана в курсовому проекті розроблена відповідно до постановкою завдання на курсове проектування по темі "Розробка графічного редактора" з дисципліни "Об'єктно-орієнтоване програмування".

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

Тестування підтвердило, що програма коректно виконує обробку даних і демонстрацію результатів.

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

Бібліографічний список

1. Дороніна Ю.В. Конспект курсу лекцій з дисципліни "Об'єктно-орієнтоване програмування".

2. Фаронов В.В. Delphi 6. Навчальний курс. - М.: Видавець Молгачева С.В., 2001. - 672 с., Іл.

3. Методичні вказівки до курсової роботи з дисципліни "Об'єктно-орієнтоване програмування" для студентів спеціальності 7.080.401 - "Комп'ютеризовані системи обробки інформації та управління" / Укл. Ю.В. Дороніна, О.М. Синіцин, 2001 (електронна версія).

4. Дарахвелідзе П.Г., Марков Є.П. Delphi 4 - Середа візуального програмування. БХВ - Санкт-Петербург, 1999. - 816 с.

5. Озеров В. - Поради по Delphi (електронна книга).

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
61.1кб. | скачати


Схожі роботи:
Графічний редактор Paint Опис графічного редактора Paint - стандартоного графічного редактора
Опис графічного редактора Paint
Створення ескізів швейних виробів з використанням графічного редактора Paint
Інтерфейс програми Photoshop Інструменти та палітри Основний опис графічного редактора PhotoS
Створення та обробка зображень за допомогою графічного редактора растрової графіки Adobe Photoshop
Меню ПРАВКА редактора Word Опис усіх пунктів меню Правка редактора Word
Основи графічного виводу
Вікно редактора Word
Робота редактора з формулами
© Усі права захищені
написати до нас