Векторний графічний редактор

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

скачати

МОСКОВСЬКИЙ ДЕРЖАВНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ ІМ. Н.Е. БАУМАНА

Калузький філія

Факультет «ЕІУК»

Кафедра «ЕіУ-5»

ПОЯСНЮВАЛЬНА ЗАПИСКА до курсової роботи

Тема:

"Векторний графічний редактор"

Калуга, 2008 р.

Зміст

1. Введення

2. Технічне завдання

2.1 Загальні відомості

2.2 Призначення та мета створення системи

2.3 Вимога до системи

2.4 Склад і зміст робіт по створенню системи

3. Дослідницька частина

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

3.2 Обгрунтування вибору теми

3.3 Обгрунтування вибору способу розв'язання

3.4 Обгрунтування вибору платформи

3.5 Обгрунтування вибору мови програмування

4. Конструкторська частина

4.1 Функціональне призначення

4.2 Керівництво програміста

5. Технологічна частина

5.1 Призначення програми

5.2 Умови виконання програми

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

Висновок

Література

  1. Введення

Тема курсової роботи:

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

Завдання:

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

Цілі:

  1. Вивчення середовища програмування С + + Builder

  2. Вивчення теоретичних основ векторної графіки

  3. Знайомство і використання алгоритмів перетворення простору

  4. Придбання навичок програмування на мові С + +

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

2. Технічне завдання

2.1 Загальні відомості

2.1.1 Повне найменування системи

Програма для створення і перетворення зображень.

2.1.2 Перелік документів, на підставі яких створюється система

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

2.1.3 Планові терміни початку і закінчення роботи зі створення системи

Постановка завдання для курсової роботи з курсу "Програмування на мовах високого рівня" проведена 17.09.2008, закінчення розробки програми і створення документації повинно бути зроблене не пізніше 8.12.2008.

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

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

  • постановка задачі

  • узгодження та затвердження технічного завдання

  • розробка і узгодження структури програми

  • погодження та затвердження програми

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

  • узгодження та затвердження технічного проекту.

2.2 Призначення та мета створення системи

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

2.3 Вимога до системи

2.3.1 Вимоги до системи в цілому

2.3.1.1 Вимоги до структури

Дана система складається з наступних частин:

  • Малювання графічних примітивів, таких як: Line, Rectangle, Triangle, Ellipse

  • Перетворення простору за допомогою функції Mirror, зокрема примітиву Ellipse

2.3.1.2 Вимоги до надійності

Програмний продукт повинен відповідати наступним вимогам надійності:

При роботі з зображенням проводиться перевірка збереження результатів роботи з зображенням.

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

2.3.1.3 Вимоги до експлуатації

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

2.3.2 Вимоги до функцій, виконуваних програмним продуктом

Програмний продукт призначений для роботи із зображенням і тому повинен містити і виконувати наступні дії:

  • Робота з графічними файлами

    1. Створення нового графічного файлу

  • Малювання основних геометричних примітивів

  1. Малювання відрізків прямих

  2. Малювання прямокутників

  3. Малювання трикутників

  4. Малювання еліпсів

  • Додаткові можливості редагування

    1. Дзеркальне перетворення простору з намальованими в ньому еліпсами

2.3.3 Вимоги до видів забезпечення

2.3.3.1 Математичне забезпечення системи

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

2.3.3.2 Лінгвістичне забезпечення системи

Програмний продукт повинен розроблятися тільки з використанням середовища програмування C + + Builder 6. Використання інших середовищ програмування не допускається. Необхідно домогтися безпомилкової роботи програми на ОС Windows сімейства ХР.

2.3.3.3 Технічного забезпечення системи

Для нормального функціонування програмного продукту необхідно:

  • Процесор i80486

  • 16Мб RAM

  • Не менше 3 Мб вільного місця на жорсткому диску

  • Клавіатура і маніпулятор миша

Для роботи з додатком потрібно встановлена ​​операційна система Windows сімейства XP. Для функціонування програми не потрібно ніяких спеціально встановлених програмних продуктів.

2.4 Склад і зміст робіт по створенню системи (Табл. 1)

Таблиця 1


Етап розробки

Термін виконання

1

Затвердження теми. Розробка плану.

17.09.2008 - 3.10.2008

2

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

До 17.10.2008

3

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

17.10.2008 - 21.11.2008

4

Формулювання вимог до апаратної і програмної платформ, посібник з встановлення та адміністрування програми, керівництво користувача.

До 21.11.2008

5

Остаточне оформлення креслень і розрахунково-пояснювальної записки. Підготовка доповіді.

До 8.12.2008

  1. Дослідницька частина

    1. Варіанти способу розв'язання

  • створення чотирьох класів відповідно до кількості заданих примітивів містять дані про них і двох методів: перемальовування зображення і перетворення простору

  • створення батьківського класу, що містить дочірні класи відповідні набору примітивів, а також додатковий клас для виконання обчислень пов'язаних з перетворенням простору

При реалізації поставленого завдання вона була розбита на дві частини:

  • малювання графічних примітивів

  • перетворення простору за допомогою алгоритмів перетворення простору

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

3.2 Обгрунтування вибору платформи

Для реалізації програми була обрана платформа Microsoft Windows XP. Цей вибір обумовлений наявністю даної ОС на ЕОМ в аудиторіях університету, що дозволить наочно продемонструвати отриманий програмний продукт.

3.3 Обгрунтування вибору мови програмування

Для реалізації даного програмного продукту була обрана мова C + +. Цей вибір обумовлений тим, що об'єктно-орієнтована мова високого рівня C + + на порядок перевершує свої аналоги за оціночним параметром швидкість-зручність: він має всі високорівневі засоби структурування програм, і при цьому програми, написані з його допомогою, є дуже швидкими завдяки використанню оптимізують компіляторів . Крім того, компілятори для C + + існують майже під всіма платформами, і більшість з них підтримують останні стандарти мови. Оскільки системи контролю версій нерідко використовуються для розробки мульти-платформних додатків, то дуже ймовірно, що програми згодом доведеться переносити під іншу операційну систему. Мова С + + дозволить легко це зробити.

3.4 Обгрунтування вибору середовища програмування

Вибір даного середовища програмування С + + Builder обумовлений завданням, виданим викладачем. Перевагою даного середовища є те, що в ній реалізована ідея справді візуальної розробки програм. Дизайнер інтерфейсів дозволяє, не написавши жодного рядка коду, створювати програми зі складним інтерфейсом. Програміст тільки пише важливий для роботи код, інтерфейс за нього реалізує середовище.

4. Конструкторська частина

4.1 Функціональне призначення

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

4.2 Опис логічної структури

Рішення поставленої задачі розбивається на кілька частин:

  • малювання графічних примітивів

  • дзеркальне перетворення простору

Алгоритми малювання графічних примітивів

Малювання відрізків прямих

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





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

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

1)






2)



Малювання трикутників

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

1)





Х

2)



Y

Малювання еліпсів

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


1)





2)





Rx = (abs (ex1-ex2)) / 2;

Ry = (abs (ey1-ey2)) / 2;

Xc = (ex1 + ex2) / 2;

Yc = (ey1 + ey2) / 2;

Алгоритм перетворення простору

Для перетворення простору перетворювачем типу «дзеркало» необхідно почати з створення лінії «дзеркала». Вона малюється як і звичайний примітив line. Далі для дзеркального відображення об'єктів простору щодо цієї лінії використовується наступний алгоритм складається з декількох кроків:

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






  1. Зміщуємо перетворені точку P простору на вектор-OB, отримуємо точку P1

Про





  1. Знаходимо кут α між AB і віссю ОХ

Про





  1. Повертаємо Р навколо Р1 на кут α, отримуємо точку Р2

Про





  1. Зміщуємо Р2 на вектор ОВ і отримуємо точку Р!. Перетворення завершено

Про





4.3 Реалізація алгоритму перетворення простору

Реалізацію алгоритму перетворення простору здійснює метод Mirror (Лістинг 3.1.)

Лістинг 3.1

void Mirror ()

{

ell * zu2_e;

a = (Y1-Y2) / sqrt ((Y1-Y2) * (Y1-Y2) + (X1-X2) * (X1-X2 ));// sin

b = (X1-X2) / sqrt ((Y1-Y2) * (Y1-Y2) + (X1-X2) * (X1-X2 ));// cos

if (x_e! = 0)

{

zu2_e = x_e;

while (zu2_e! = 0)

{

for (int j = 0; j <2048; j + +)

{

mx1 = zu2_e-> x [j];

my1 = zu2_e-> y [j];

mx1 + =- X1;

my1 + =- Y1;

xx = mx1 * b + my1 * a;

yy =- mx1 * a + my1 * b;

yy =- yy;

mx1 = xx * b-yy * a;

my1 = xx * a + yy * b;

mx1 + = X1;

my1 + = Y1;

zu2_e-> x [j] = mx1;

zu2_e-> y [j] = my1;

}

zu2_e-> Draw ();

zu2_e = zu2_e-> next;

}

}

}

4.4 Основні функції роботи з графікою

      1. FormMouseDown - проводиться збереження координат курсору;

      2. FormMouseUp - проводиться кінцева промальовування зображуваного елемента;

      3. FormMouseMove - відбувається постійна перемальовування зображуваного елемента;

      4. LineDRW - відбувається оповіщення програми про те, що буде відбуватися промальовування лінії.

      5. RectDRW - відбувається оповіщення програми про те, що буде відбуватися промальовування прямокутника.

      6. TreDRW1 - відбувається оповіщення програми про те, що буде відбуватися промальовування першого межі трикутника.

      7. TreDRW2 - відбувається оповіщення програми про те, що буде відбуватися промальовування двох, що залишилися граней трикутника.

      8. EllDRW - відбувається оповіщення програми про те, що буде відбуватися промальовування еліпса.

5. Технологічна частина

5.1 Призначення програми

Даний програмний продукт призначений для роботи із зображенням і тому повинен містити і виконувати наступні дії:

  • Робота з графічними файлами

    1. Створення нового графічного файлу

  • Малювання основних геометричних примітивів

        1. Малювання відрізків прямих

  1. Малювання прямокутників

  2. Малювання трикутників

  3. Малювання еліпсів

  • Додаткові можливості редагування

    1. Дзеркальне перетворення простору з намальованими в ньому еліпсами

5.2 Умови виконання програми

5.2.1 Вимоги до апаратної і програмної середах

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

  1. програма повинна виконуватися у всіх операційних системах Windows XP;

  2. програма може виконуватися на IBM-PC сумісному комп'ютері з процесором не нижче 80486;

  3. для нормального функціонування програми необхідний мінімальний розмір оперативної пам'яті 16 Мб;

  4. для програми необхідна наявність 3 Мб вільного місця на жорсткому диску;

  5. для роботи з програмою необхідно наявність пристрою введення (клавіатура, маніпулятор «миша»);

  6. для відображення результатів роботи програми необхідна наявність пристрою виводу (монітор);

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

5.3.1 Виконання програми

Для звернення до програми необхідно запустити файл "Project1.exe" з гнучкого або жорсткого магнітного диску.

Для малювання відрізків прямих, необхідно активізувати radiobutton «line». Далі необхідно перемістити покажчик миші на головну форму. Натисніть лівою кнопкою миші і, не відпускаючи її, перемістіть курсор миші в іншу точку вікна програми. Відпустіть ліву кнопку миші. На екрані відобразиться лінія (рис.4.1.).

Малюнок 4.1. Відображення лінії

Для малювання прямокутників, необхідно активізувати radiobutton «rectangle». Далі необхідно перемістити покажчик миші на головну форму. Натисніть лівою кнопкою миші і, не відпускаючи її, перемістіть курсор миші в іншу точку вікна програми. Відпустіть ліву кнопку миші. На екрані відобразиться прямокутник (рис.4.2.).

Малюнок 4.2. Відображення прямокутника

Для малювання трикутників, необхідно активізувати radiobutton «triangle». Далі необхідно перемістити покажчик миші на головну форму. Клацніть лівою кнопкою миші, перемістіть курсор миші в іншу точку вікна програми, клацніть знову. На екрані відобразиться перший грань трикутника. Далі перенесіть курсор в точку, де повинна знаходитися третя вершина трикутника, клацніть там, прориси залишилися дві грані. На екрані відобразиться трикутник (рис.4.3.).

Малюнок 4.3. Відображення трикутника

Для малювання еліпсів, необхідно активізувати radiobutton «ellipse». Далі необхідно перемістити покажчик миші на головну форму. Натисніть лівою кнопкою миші і, не відпускаючи її, перемістіть курсор миші в іншу точку вікна програми. Відпустіть ліву кнопку миші. На екрані відобразиться еліпс (рис.4.4.).

Малюнок 4.4. Відображення еліпса

Для перетворення простору необхідно активізувати radiobutton «mirror». Далі необхідно перемістити покажчик миші на головну форму. Натисніть лівою кнопкою миші і, не відпускаючи її, перемістіть курсор миші в іншу точку вікна програми. Відпустіть ліву кнопку миші. На екрані відобразиться лінія, щодо якої буде відбуватися перетворення (рис.4.5.), І станеться саме перетворення (всі еліпси дзеркально відобразяться щодо лінії) (рис.4.6.).

Малюнок 4.5. Відображення лінії дзеркала

Малюнок 4.6. Перетворення простору

Завершення програми відбувається після клацання лівої кнопки миші по кнопці з хрестиком у верхньому правому куті вікна програми.

Висновок

Таким чином, цілі, поставлені на початку роботи, були досягнуті. Була освоєна середовище програмування C + + Builder, в ході виконання вимог до поставленого завдання були використані алгоритми перетворення простору а також придбавши нові навички програмування на С + +. Вдалося створити програмний продукт, що відповідає пунктам спочатку заданих вимог. Для створення і невеликої корекції зображення зручно мати під рукою швидкий і компактний векторний графічний редактор, який дозволяє внести необхідні зміни і при цьому не зажадає великих витрат вашого часу і місця на жорсткому диску.

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

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

Література

  1. Майкл Дж. Янг, Visual C + +, 1999 р.

  2. Архангельський А. Я., Програмування в С + + Builder 6, вид. Біном, 2003 р.

  3. Архангельський А. Я., С + + Builder 6 довідковий посібник (книги 1,2), вид. Біном, 2002 р.

  4. Культін Н., Самовчитель С + + Builder, БХВ-Петербург, 2004 р.

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

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

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


Схожі роботи:
Організація та методика проведення уроку з теми Векторний графічний редактор Corel Draw
Графічний редактор Paint
Графічний редактор Paint 2
Безкоштовний графічний редактор GIMP
Графічний редактор Рaint та його використання
Програми Windows графічний редактор Paint
Розвитку уваги у старших школярів у процесі вивчення теми графічний редактор
Графічний редактор Paint Опис графічного редактора Paint - стандартоного графічного редактора
Лінійний векторний простір
© Усі права захищені
написати до нас