Абстрактна графика Turbo-Pascal

Министерство на образованието и науката на България

Институт по хуманитарни науки и технологии в Бузулук

(филиал) на държавното учебно заведение

Висше професионално образование -

"Оренбургски държавен университет"

Факултет по индустрия и транспорт

Катедра Физика, Информатика, Математика

по дисциплината "Програмни езици и системи"

Графика Turbo Pascal. Динамични изображения

BGTI (клон) GOU VPO OGU 050501.65.5.2.09.9 PZ

Група ученик: 07PO

_______ Городецкая А.А.

Катедра Физика, Информатика,

____________ Степунина О.А.

Задача за курсова работа

Студент Анна Городецкая

1. Тема на работа: Turbo-Pascal графики. Динамични изображения.

3. Списъкът с въпроси, които ще бъдат разработени в работата:

1) Да се ​​проучат теоретичните основи на разглеждания въпрос.

2) Разработете програма, която реализира движението по траекторията на графичен обект.

3) Разработване на програма, която реализира движението на кръг върху екрана

4. Списък на графичен материал: фигура, таблици

Ръководител: __________ Литвинова S.A.

Задачата е приета за изпълнение: "__" ___________ 2009г.

___________________ Городецкая А.А.

Езикът Turbo Pascal предоставя редица процедури и други инструменти, които ви позволяват да рисувате многоцветни точки, сегменти, дъги, запълнени и незапълнени кръгове, правоъгълници и да извършвате редица други действия на екрана.

Всички инструменти за работа с графики са в модула GRAPH, така че той трябва да бъде включен в програмата преди стартиранеработа:

Графиките се инициализират с помощта на процедурата InitGraph:

InitGraph(променлива d, t, '')

Курсовата работа представя най-интересните и често използвани процедури за рисуване, а също така показва как да програмирате движещи се обекти.

Раздел 1. Теоретична част

1.1 Текстови и графични режими

Известно е, че основното устройство за показване на информация, включително резултатите от програмата, е компютърен монитор. Мониторът изглежда много подобен на телевизор, но има важна характеристика. Тази функция се крие във факта, че телевизорът има само един (по отношение на изхода на изображение) режим на работа, а мониторът на компютъра има два. Това сатекстовииграфичнирежими.

turbo-pascal

Фигура 1 - Графичен режим

Разликата между текстовия и графичния режим на монитора се крие във възможността да се контролира извеждането на визуална информация. В текстов режим минималният обект, показан на екрана, езнак, буквено-цифров или друг. При нормални условия екранът на монитор, работещ в текстов режим (буквено-цифров дисплей), може да съдържа не повече от 80 символа хоризонтално и 25 символа вертикално, т.е. общо 2000 визуални обекта. Има обаче ограничени опции за управление на цвета на знаците. Разбира се, в този режим можете да показвате не само обикновен текст, но и някои графични изображения (например таблици), но е ясно, че качеството на такива изображения ще бъде извън всякаква критика. Но за сериозна работа с изображения режимът на показване на текст абсолютно не е подходящ.

В графичен режим минималният обект, чийто изход програмистът може да контролира енаречен пиксел (от английския пиксел, произтичащ от комбинацията на думите „картина“ (картина) и „елемент“ (елемент). Пикселът не е нищо повече от точка с три цвята. Геометричните му размери се определят от разделителната способност на монитора. Разделителната способност на монитора обикновено се задава катоrx*ry, къдетоrxе броят на пикселите на екрана хоризонтално, аryе броя на пикселите по вертикала.На практика не произволно, а се използват някои специфични стойности на разделителната способност.Такива разделителни способности са например 320x200, 640x480, 800x600, 1024x768, 1280x1024 и т.н.. Дори и в случай на най-груба разделителна способност, изображението в графичен режим се формира с помощта на 64000 графични елемента.

Можете също да мислите геометрично. Размерът на екрана е фиксирана стойност. Ако диагоналът на екрана е 14 инча, неговите геометрични размери са приблизително 28x20 см. Размерът на пикселите може да бъде приблизително определен, като размерът на екрана се раздели на разделителната способност. Геометричните размери на пиксела определят степента на детайлност на изображението, неговото качество. Има обаче минимално допустим размер на пикселите, който се определя от техническите параметри на монитора.

1.2 Графични координати

Всяко изображение се формира от доста прости геометрични фигури. Това са точки, отсечки, окръжности и др. От геометрията е известно, че положението на геометричния обект и неговата форма се дават от координатите на неговите точки. Следователно, за да се програмира графичен изход, човек трябва да се научи как да задава координатите на графичните обекти.

Графичните координатиопределят позицията на точка на екрана на дисплея. Тъй като минималният елемент, до който програмистът има достъп, е пиксел, естествено е тази графикакоординати, за да използвате поредните номера на пикселите. Допустимият диапазон от графични координати е [0,rx-1] заx-координата и [0,ry-1] заy-координата.

Референтната точка е горният ляв ъгъл на екрана. Стойностиx-координати се броят отляво надясно, аy-координати - отгоре надолу. Последният разграничава графичните координати от обичайните декартови координати, приети в математиката, и служи като неизчерпаем източник на грешки за начинаещ програмист.

Проблемът е, че когато се разработва програма, графика или друго изображение обикновено се проектират в познатата декартова координатна система. Но за правилното показване на такава графика на екрана е необходимо да се вземе предвид разликата между декартовата и графичната координатна система. Има три такива разлики:

1. Графичните координати приемат само цели числа.

2. Графичните координати приемат стойности, ограничени както отдолу (нулева стойност), така и отгоре (стойност на разделителната способност).

3. Графичната координатаyсе измерва отгоре надолу.

Така декартовите координати на точка (x,y), за да се покаже на екрана, трябва да бъдат преобразувани в графични (xg,yg) съгласно формулите

къдетоxе цялата част отx;sxиsy– коефициенти на мащабиране, избрани от условието

Тукxmaxиymaxса максималните стойности на геометричните координати. Преизчисляването на координататаyпо същата формула като заxще доведе до огледално изображение спрямо хоризонталната линия. Терминитеdxиdyосигуряват изместване на изображението спрямо горния ляв ъгъл на екрана. Изображението ще се премести в центъра на екрана, когато

Да сеизображението не зависи от разделителната способност, в Turbo Pascal се използват функциитеGetMaxX иGetMaxY,, които връщат съответно най-големия и брой пиксел хоризонтално и вертикално. Графичните координати на долния десен ъгъл на екрана са(GetMaxX,GetMaxY).

Превключването в графичен режим и работата в него са реализирани в Turbo Pascal като набор от процедури, разположени в специален модулgraph.tpu. Този модул е ​​базиран на така наречения графичен интерфейс на Borland (BGI –BorlandGraphicsInterface), специализирана графична библиотека. Основното предимство на този интерфейс е, че е лесен за научаване и доста подходящ за програмиране на прости графични програми.

МодулътGraphTurbo Pascal съдържа около петдесет различни процедури и функции, предназначени за работа с графичен екран. Същият модул описва някои вградени константи и променливи, които могат да се използват в графични програми. Основната част на модула се състои от процедури за показване на основни графични елементи, като точки, прави сегменти, дъги и цели кръгове и др. Такива елементи се наричат ​​графични примитиви. Друга група процедури е предназначена за управление на графичния режим.

МодулътGraphтрябва да бъде изрично включен в програмата с помощта на оператораUses след заглавката на програмата:

къдетостойносте произволно число (Таблица 1) или вградена константа (вградените константи не е необходимо да бъдат специално описвани, тъй като техните описания се съдържат в модули).

Някои възможни стойности наvalueса показани в Таблица1.

КонстантаЗначение

Таблица 2 - Графични режими

КонстантаЗначениеОписание на графичния режим
EGALo0640х200, 16 цвята, 4 страници
EGAHi1640x350, 16 цвята, 2 страници
EGA64Lo0640x200, 16 цвята, 1 страница
EGA64Hi1640x350, 4 цвята, 1 страница
VGALo0640х200, 16 цвята, 4 страници
VGAMed1640x350, 16 цвята, 2 страници
VGAHi2640x480, 16 цвята, 1 страница
VGAHi23640x480, 2 цвята, 1 страница

Превключването в режим на графично изобразяване се извършва чрез извикване на процедуратаInitGraphот модулаGraph.

ПроцедуратаInitGraphинициализира графичната система и поставя хардуера в графичен режим.

Превключването към графичен режим (инициализация на графичен режим) обикновено е придружено от обработка на възможни грешки при инициализация. Тези грешки може да се дължат на липсващ графичен драйвер или неправилни настройки. Ако има грешка, процедуратаInitGraphгенерира съответния ненулев резултат - кода на грешката. Този код може да бъде получен чрез функциятаGraphResult.

GraphResultТип резултат: Цяло число (Цяло число).

Дефинирани са следните кодове за грешка:

- 1 графика не е инсталирана (използвайте процедураInitGraph);

- 2 графични хардуера не са намерени;

- 3 драйвера за графично устройство не са намерени;

- 4 неправилни драйверни файла за графично устройство;

- 5 няма достатъчно памет за зареждане на драйвера;

- 7 памет извън границите при рисуване;

- 8 файл с шрифт не е намерен;

- 9 няма достатъчно памет за зареждане на шрифта;

- 10 Невалиден графичен режим за избрания драйвер.

1.3 Процедури и функции

Когато работите с цвят в режимVGA, интензитетът на основния цвят се определя от стойност от типWord. Шестнадесетцветната палитраVGAе показана в таблицата (в процедурите можете да използвате както цветни константи, така и техните кодове):