Реферати українською » Информатика, программирование » Розробка графічного редактора


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

Страница 1 из 2 | Следующая страница

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

>Пояснительная записка

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

за курсом ">Объектно-ориентированное програмування"

2005


Зміст

Запровадження

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

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

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

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

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

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

Укладання

>Библиографический список


Запровадження

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

Приобъектно-ориентированном програмуванні слід дотримуватись наступних принципів:

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

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

>Наследование – здатність створювати нові типи повторно,

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

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

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

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

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

>Требованием до апаратному і програмному забезпеченню служить наявність будь-якогоIBM-совместимого комп'ютера з накопичувачем на гнучких та вживання жорсткіших магнітних дисках і достатню кількість оперативної пам'яті. На комп'ютері слід установити операційна система, сумісна з Windows3.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:

>procedureTForm1.DrawShape(TopLeft,BottomRight:TPoint;AMode:TPenMode);

>vari:integer;

>begin

>withimage1.Canvasdo

>begin

>Pen.Mode :=>amode;

>caseDrawingTool 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;

>fori:=1 to 20do

>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)div2),topleft.y);

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

>image1.Canvas.MoveTo(topleft.x+((bottomright.x-topleft.x)div2),topleft.y);

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

>image1.Canvas.LineTo(topleft.x+((bottomright.x-topleft.x)div2),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 Керівництво користувача

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

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

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

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

шлях,

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

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

- створити,

відкрити,

зберегти,

зберегти як,

вихід.

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

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

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

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

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

вихідF10.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

стилізація;

дизайн.

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

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

Страница 1 из 2 | Следующая страница

Схожі реферати:

Навігація