на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Побудова динамічної графіки

Побудова динамічної графіки

3

МІНІСТЕРСВО ОСВІТИ І НАУКИ УКРАЇНИ

ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ

ФАКУЛЬТЕТ ФІТІС

КАФЕДРА КОМП'ЮТЕРНИХ СИСТЕМ

КУРСОВИЙ ПРОЕКТ

з дисципліни ”Програмування”

не тему: ”Побудова динамічної графіки”

ЧДТУ 03 ****.001 ПЗ

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

Керівник: Виконав:

асистент кафедри КС студент І-го курсу

Ярошевич Д.О. групи КМ-311

Кулинич Євгеній

допущено до захисту: _______________

”___”_________2004р. (підпис)

захищено з оцінкою:

_________________

”___”_________2004р.

_________________

(підпис)

Черкаси 2004

ЗМІСТ

  • 1. Теоретичні відомості 2
  • 2. Блок-схема 2
  • 3. Текст програми 2
  • 4. Результати роботи програми 2
1. Теоретичні відомості

·
Процедури і функції

· Координати, вікна, сторінки

· Багатокутники

· Дуги, кола, еліпси

· Фарби, палітри, заповнення

· Збереження і видача зображень

· Виведення тексту

· Включення драйвера і шрифтів в тіло програми

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

· Процедури і функції

Процедура InitGraph. Ініціює графічний режим роботи адаптера.

Заголовок процедури:

Procedure InitGraph(var Driver,Mode: Integer; Path: String);

Тут Driver - змінна типу Integer, визначає тип графічного драйвера; Mode - змінна того ж типу, задаюча режим роботи графічного адаптера; Path - вираз типа String, що містить ім'я файлу драйвера і, можливо, маршрут його пошуку.

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

const

Detect=0;{Режим автовизначення типу}

CGA=1;

MCGA=2;

EGA=3;

EGA64=4;

EGAMono=5;

IBM8514=6;

HercMono=7;

ATT400=8;

VGA=9;

PC3270=10;

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

const

{ Адаптер CGA : }

CGACO = 0;

{Низьке розширення, палітра 0}

CGAC1 = 1;

{ Низьке розширення, палітра 1}

CGAC2 = 2;

{ Низьке розширення, палітра 2}

CGAC3 = 3;

{ Низьке розширення, палітра 3}

CGAHi = 4;

{ Високе розширення }

{Адаптер MCGA:}

 

MCGACO = 0;

{Емуляція CGACO}

MCGAC1 = 1;

{Емуляція CGAC1}

MCGAC2 = 2;

{Емуляція CGAC2}

MCGAC3 = 3;

{Емуляція CGAC3}

MCGAMed = 4;

{Емуляція CGAHi}

MCGAHi = 5;

{640x480}

{Адаптер EGA :}

 

EGALo = 0;

{640x200, 16 кольорів}

EGAHi = 1;

{640x350, 16 кольорів}

EGAMonoHi = 3;

{640x350, 2 кольори}

{Адаптери HGC і

HGC+:}

HercMonoHi = 0;

{720x348}

{АдаптерАТТ400:}

ATT400CO = 0;

{Аналог режиму CGACO}

ATT400C1 = 1;

(Аналог режиму CGAC1}

ATT400C2 = 2;

{Аналог режиму CGAC2}

ATT400C3 = 3;

{Аналог режиму CGAC3}

ATT400Med = 4;

{Аналог режиму CGAHi}

ATT400H1 = 5;

{640x400, 2 кольори}

{Адаптер VGA:}

VGALo = 0;                      {640x200}

VGAMed = 1;                    {640x350}

VGAHi = 2;                      {640x480}

PC3270H1 = 0;                {Аналог HercMonoHi}

{Адаптер 1ВМ8514}

IBM8514LO =0;          {640x480, 256 кольорів}

IBM8514H1 = 1;        {1024x768, 256 кольорів}

Нехай, наприклад, драйвер CGA.BGI знаходиться в каталозі TP\BGI на диску З і встановлюється режим роботи 320x200 з палітрою 2. Тоді звернення до процедури буде таким:

Uses Graph; 

var

Driver, Mode : Integer; 

begin

Driver := CGA;{Драйвер}

Mode := CGAC2;{Режим роботи}

InitGraph(Driver, Mode,' З:\TP\BGI');

.......

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

Driver := Detect;

InitGraph(Driver, Mode, 'C:\TP\BGI');

Після такого звернення встановлюється графічний режим роботи екрану, а при виході з процедури змінні Driver і Mode містять цілочисельні значення, що визначають тип драйвера і режим його роботи. При цьому для адаптерів, здатних працювати в декількох режимах, вибирається старший режим, тобто той, що закодований максимальною цифрою. Так, при роботі з CGA -адаптером звернення до процедури із значенням Driver = Detect поверне змінній Driver значення 1 (CGA) і в Mode -значення 4 (CGAHi), а також звернення до адаптера VGA поверне Driver = 9 (VGA) і Mode = 2 (VGAHi).

Функція GraphErrorMsg.

Повертає значення типу String, в якому за вказаним кодом помилки дається відповідне текстове повідомлення.

Заголовок функції:

Function GraphErrorMsg(Code: Integer): String;

Тут Code - код помилки, що повертається функцією GraphResult.

Частіше за все причиною виникнення помилки при зверненні до процедури InitGraph є неправильна вказівка місцеположення файлу з драйвером графічного адаптера (наприклад, файлу CGA.BGI для адаптера CGA). Настройка на місцеположення драйвера здійснюється завданням маршруту пошуку потрібного файлу в імені драйвера при виклику процедури InitGraph. Якщо, наприклад, драйвер зареєстрований в підкаталозі DRIVERS каталога PASCAL на диску D, то потрібно використовувати виклик:

InitGraph(Driver, Mode, 'd:\Pascal\Drivers');

Процедура CloseGraph.

Завершує роботу адаптера в графічному режимі і відновлює текстовий режим роботи екрану.

Заголовок:

Procedure CloseGraph;

Процедура RestoreCRTMode.

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

Заголовок:

Procedure RestoreCRTMode;

Функція GetGraphMode.

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

Заголовок:

Function GetGraphMode: Integer;

Процедура SetGraphMode.

Встановлює новий графічний режим роботи адаптера.

Заголовок:

Procedure SetGraphMode(Mode: Integer);

Тут Mode - код встановлюваного режиму.

Процедура DetectGraph.

Повертає тип драйвера і режим його роботи.

Заголовок: 

Procedure DetectGraph(var Driver,Mode: Integer);

Тут Driver - тип драйвера; Mode - режим роботи.

На відміну від функції GetGraphMode описувана процедура повертає змінній Mode максимально можливий для даного адаптера номер графічного режиму.

Функція GetDriverName.

Повертає значення типу String, що містить ім'я завантаженого графічного драйвера. Заголовок:

Function GetDriverName: String;

Функція GetMaxMode.

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

Заголовок:

Function GetMaxMode: Integer;

Функція GetModeName.

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

Заголовок:

Function GetModName(ModNumber: Integer): String;

Тут ModNumber - номер режиму.

Процедура GetModeRange.

Повертає діапазон можливих режимів роботи заданого графічного адаптера. Заголовок:

Procedure GetModeRange(Drv: Integer; var Min, Max: Integer);

Тут Drv - тип адаптера; Min - змінна типа Integer, в якій повертається нижнє можливе значення номера режиму; Мах - змінна того ж типу, верхнє значення номера.

· Координати, вікна, сторінки

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

Функції GetMaxX і GetMaxY.

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

Функції GetX і GetY.

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

Процедура SetViewPort.

Встановлює прямокутне вікно на графічному екрані.

Заголовок:

Procedure SetViewPort(XI,Y1,X2,Y2: Integer; ClipOn: Boolean);

Тут X1...Y2 - координати лівого верхнього (XI,Y1) і правого нижнього (X2,Y2) кутів вікна; СНрОп - вираз типа Boolean, що визначає «відсічення» елементів зображення, що не уміщаються у вікні.

Координати вікна завжди задаються щодо лівого верхнього кута екрану. Якщо параметр ClipOn має значення True, елементи зображення, що не уміщаються в межах вікна, відсікаються, інакше межі вікна ігноруються. Для управління цим параметром можна використовувати такі певні в модулі константи:

const

ClipOn = True; {Включити відсічення} 

ClipOff = False; {He включати відсічення}

Процедура GetViewSettings.

Повертає координати і ознаку відсічення поточного графічного вікна.

Заголовок:

Procedure GetViewSettings(var Viewlnfo: ViewPortType);

Тут Viewlnfo - змінна типа ViewPortType. Цей тип в модулі Graph визначений таким чином:

type

ViewPortType = record

x1,y1,x2,y2: Integer; {Координати вікна} 

Clip : Boolean {Ознака відсічення}

end ;

Процедура MoveTo.

Встановлює нове поточне положення покажчика.

Заголовок:

Procedure MoveTo(X,Y: integer);

Тут X, Y - нові координати покажчика відповідно по горизонталі і вертикалі.

Координати визначаються щодо лівого верхнього кута вікна або, якщо вікно не встановлено, екрану.

Процедура MoveRel.

Встановлює нове положення покажчика у відносних координатах.

Страницы: 1, 2, 3



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.