Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая_Малышев)).doc
Скачиваний:
22
Добавлен:
24.11.2018
Размер:
339.46 Кб
Скачать

3.2 Системні вимоги

Для зручного використання програми бажано мати наступну конфігурацію системи:

  • Процесор Intel Pentium 2 або вище

  • Оперативна пам’ять 32 Мб або вище

  • 1-2 Мб вільного місця на жорсткому диску

  • Клавіатура

  • Мишка

  • Монітор

3.3 Опис процедур

begin

config_graph;

SetBkColor(0);

SetColor(fon_clr);

Rectangle(scr_x, scr_y, scr_x+x+60, scr_y+y+50);

SetFillStyle(1, fon_clr);

FloodFill(scr_x+2, scr_y+2, fon_clr);

mouse_x_:=mouse_x;

color:=0;

oper:=99;

scr_x:=50;

scr_y:=50;

size_cur:=15;

dos_4:=False;

stena;

menu_oper(True, True, 1, 10, 20, 50);

menu_color(True);

out_text(7, 7);

save_blocks;

while key_prs <> esc do begin

on_mouse;

krd_mouse;

menu_oper(False, True, 1, 10, 20, 50);

menu_color(False);

Drow;

if(KeyPressed = True)then key_prs:=readkey;

up_bar;

end;

closegraph;

end.

Це являється головним кодом програми . Спочатку ми встановлюємо графічний режим процедурою config_graph. Потім будуємо інтерфейс та встановлюємо початкові конфігурації.

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

Підключаємо довідка і вихід up_bar.А якщо цикл закінчується , а він закінчується коли

key_prs = esc, тоді закриваємо графічний режим і виходимо.

procedure config_graph;

Ось тут ми інсталюємо графічний режим initgraph. Командою getdir ми пізнаємо який текучій каталог і розміщуємо в перемінну dir.

procedure krd_mouse;

Ця процедура виводить дані координати миші. Якщо координати миші міняються тоді ми процедурою видаляємо старі координати процедурою del_grp і виводимо нові координати.

А якщо мишка не входить в графічне вікно то тоді координати видаляються.

procedure del_grp(d_x, d_y, d_x_, d_y_, col_del:integer);

А ця процедура розроблення для видалення квадратиком. Спочатку ми вводимо координати початкового лівого верхнього кутка d_x, d_y, d_x_ і правого нижнього кутка d_x_, d_y_.

А потім просто встановлюємо яким кольором ми будемо його заповняти col_del.

procedure menu_oper(zx, on_k:boolean; lin, lim, o_x, o_y:integer);

Ця процедурою є вибір тих операцій яких нам потрібні для малювання. Спочатку ми встановлюємо такі значення як:

  • Zx – значення True показати кнопочки, False – заховати кнопки

  • on_k - значення True дає доступ для включення кнопок, False – вимкнути кнопки

  • lin – починати показувати з n – кнопок

  • lim – закінчити показувати до n – кнопок

  • o_x, o_y – координати виводу по x та y

В цій процедурі можна обрати яку операцію будемо використовувати в графічному вікні(редакторі) .

procedure menu_color(on:boolean);

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

procedure save_blocks;

procedure open_blocks;

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

Воно зберігається в два блоки та і аналогічно виводить в двох блоках.

procedure naw_color(col:byte);

Виводить даний колір який буде розміщений в перемінної col.

procedure stena;

Воно встановлює фон програми.

procedure Drow;

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

procedure up_bar;

Тут ми виводимо в верхньому лівому кутку Вихід та Довідку.

procedure about;

Це є довідку тут ми вводимо в таблицю case саму довідку.

procedure button_f(p_x, p_y, p_x_, p_y_,

В цій процедурі ми виводимо кнопку

  • p_x, p_y, p_x_, p_y_ - координати лівого верхнього та правого нижнього кутка.

  • col_p – колір заповнення кнопки.

  • p_text – текст, назва кнопки.

procedure out_text(col_ex, col_sp:integer);

Ми виводимо текст фону.

procedure sleep_mouse;

Ця процедура дає змогу зробити паузу. Тобто цикл не закінчиться доки не нажата кнопки миші.

procedure menu_vol;

В цій процедурі ми вводимо діаметр кола гумки на олівця.

procedure open_mblocks(om_x, om_y:integer);

procedure save_mblocks(sm_x, sm_y, sm_x_, sm_y_:integer);

Ці процедури save_mblocks - зберігають в буфер та open_mblocks - відкривають картинку яка буде задано по координатам sm_x, sm_y, sm_x_, sm_y_.

procedure window(w_x, w_y, w_x_, w_y_, w_col:integer);

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

procedure cnf_delete_f(x1, y1, x2, y2:integer);

Ці процедури призначені для швидкого видалення картинки, тому що процедура

del_grp тільки заповнює і це не є швидко. А тут ми сразу видалюємо. В процедурі cnf_delete_f ми встановлюємо де ми будемо видаляти. А процедура delete_f видаляє те які координати встановили в процедурі delete_f.

procedure Fil_op(txt:boolean);

Ця процедура призначена для зберігання та відкриття .BMP файла.

В перемінної txt ми встановлюємо те що ми будемо робити, зберегти чи відкрити. Значення True – зберегти, значення False – відкрити.

procedure open_proc(opr:string);

Ця процедура відкриває .BMP файл. В переміна opr є назва файлу. Путь к файлу встановлювати не треба, тому що ми до цього встановлюємо даний каталог, який мо встановлюємо в провіднику Fil_op. Тут обов’язково треба визначити розмір картинки для того щоб правильно відкрити файл.

procedure save_proc(spr:string);

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

procedure error_bmp(ach, eror:integer);

Цю процедуру ми підключаємо до процедурі open_proc тут ми впізнаємо чи є файл BMP картинка, та чи є картинка 16 – кольорова.

function case_color(cc:integer):integer;

В цій функції ми конвертуємо кольори. Тому що код кольору BMP картинки не співпадає з кодом кольору самого Паскаля.

procedure out_disk(dk_x, dk_y:integer);

В цій процедурі ми визначаємо які логічні диски є на комп’ютері. А робимо це так спочатку ми дивимося скільки вільного місця на диску 'A' до 'Z'.

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

procedure curlop(cur_nal, cur_kon, cur_col, cur_col_:integer);

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

  • cur_nal – скільки файлів взагалі

  • cur_kon – на якому даному файлі ми знаходимося

  • cur_col – встановлюємо колір верхньої стрілки(використаємо коли ми нажимаємо на стрілку)

  • cur_col_ – встановлюємо колір нижньої стрілки(використаємо коли ми нажимаємо на стрілку)

Ми встановлюємо повзуном по процентом яких вводимо cur_nal, cur_kon.

procedure up_fil(uf_col:integer);

Ца процедура являється стрілкою коли ми піднімаємося па одну папку вгору.

ВИСНОВКИ

Під час виконання курсової роботи вдосконалив свої теоритичні знання з графіки в Pascal на практиці. Створений графічний редактор буде мати незвичний вигляд порівняно з редакторами, які розроблені об’єктно-процедурними мовами. В моїй програмі є ті самі функції, що й у інших графічних редакторах, такі як: лінії, кружечки, квадратики, гумка, заливка та команда назад. Якщо ми намалюємо якусь картинку, то при виході з програми вона пропаде, тому я розібрався як працює BMP(Bitmap Picture)файл і доробив дві команди:

  1. картинка зберігається у форматі BMP(Bitmap Picture), але тільки 16 – кольорове зображення. Я підключав графічний драйвер для 256 – кольорового зображення але щоб збереження зображення в 256 – кольорах треба було ще багато чого доробити. Я хотів це зробити але вже не було часу.

  2. відкриває 16 – кольорове зображення.

Також програма перевіряє чи є картинка 16 – кольорова. Ну і саме головне чи є зображення в BMP форматі.

Розібрався як сконструйований BMP(Bitmap Picture) файл та як його вивести на екран в графічному режимі.

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