ПредишенСледващото

7.3.2. Пълнене (четка) на всяка затворена форма

процедура FloodFill (X, Y, граница) изпълва произволна затворена форма с помощта на ток стил и цвят запълване. Координатите на точката (X, Y) показват, започвайки от всяка точка на областта ще бъде изливане. Ако точката е в затворен фигура, той ще бъде боядисан вътрешната региона. Ако цифрата не е затворен, запълването ще се разпространи по екрана. граница параметър определя цвета на граничната линия. Например, изображение на затворена фигура може да бъде запълнена от двама оператори: SetFillStyle (5, Red); FloodFill (320, 310, циан). Тук червено фигура запълнени символи \\ двойна дебелина, както и на границата - цвят циан. Точка (320, 310) е вътрешна точка в областта.

7.3.3. Изграждане на прости геометрични фигури

Линии и точки. За възпроизвеждане на изображения, често е необходимо да се определят началната точка на това строителство. За тази цел, в графика на Паскал предвижда концепцията за "Текущ Index» (CP - ТОК POINTER), която определя позицията на "невидимата курсора". CP да се движат в границите на екрана на монитора, който, както знаем, е първото тримесечие на Декартова координатна система, има редица процедури и функции. На първо място, тази процедура MoveTo (X, Y), която се движи текущата показалеца (СР) в позиция X, Y. Например, процедура MoveTo (200,100) ще се премести на ток (невидима) показалеца на екрана в точката с координати (200, 100).

Да изготви прави линии, използвани три процедури:

Линия (X, Y, Х1, Y1: число) обръща линия от точката с координати (х, у) на точка (X1, Y1);

LineTo (X, Y) изгражда линия от точката на текущата позиция на курсора до точка с координатите X, Y;

LineRel (DX, DY) изграждане на линия от точката на текущата позиция на показалеца на точка (СРХ + Dx, CpY + Dy), където СРХ и CpY - ток координира Ср. Цвят на линията се задава SetColor оператор (цвят).

TurboPascal ви позволява да парцел линии от различни стилове: тънка, широка, пунктирана, осеян и т.н. Създаване Style от процедура SetLineStyle (Стил: дума; модел: дума; Дебелина: дума). стилове линии, показани в Таблица 3.

Графика 3. стилове линии

Каквато и да е изображение не се покаже, всички те са построени от точките. За да се покаже използваната процедура RutPixel точка (X, Y, цвят), който се основава на точката на дисплея (пиксели) с координати X, Y и цвят "цвят".

По-долу е програма, която изпълва точки на екрана, цветът на който и местоположението им се дава от генератор на случайни числа Randomize:

Var X, Y, С, D, m: цяло число;

г: = разпознаване; InitGRAPH (г, т " ');

докато не се направи keypressed

Правоъгълници. За изграждане на правоъгълни форми, има няколко процедури. Първият от тях - процедурата е правоъгълник (X1, Y1, X2, Y2) изготвяне цветен правоъгълник уточни предварително оператор SetColor. процедура се използва за конструиране на попълнено правоъгълник: Бар (X1, Y1, X2, Y2). В допълнение към правоъгълници могат да изградят и пространствени правоъгълни форми с процедурата Bar3D (X1, Y1, X2, Y2 число, Дълбочина: Word; Top :. булеви), където X1, Y1, X2, Y2 определи позицията на правоъгълника е "фронт" лице пространство форми, и параметър дълбочина определя "дълбочината" на триизмерната правоъгълник, който обикновено е (Х2 - X1 + 1) DIV 4. (куб). Топ параметър определя позицията на върховете на правоъгълник по отношение на предната страна. цвят за запълване на бар и Bar3D настроен SetFillStYle процедура.

Дъги и окръжности. Процедурата за проследяване на обиколката на текущия цвят има следния формат: кръг (X, Y, радиус: дума), където X и Y - центъра на окръжността и Радиус - му радиус. В някои случаи, по-специално за да се създаде Псевдо фигури дъга използва. Те могат да бъдат изготвени като се използва процедура Arc (X, Y: число; StAngle, EndAngle, радиус: дума), където X, Y - центъра на кръга, StAngle и EndAngle - начален и краен ъгъл дъга посочено в градуси, Радиус - радиус на дъгата.

Многоточието и сектори. За изграждането на елиптични дъги предназначени елипса (X, Y, StAngle, EndAngle, XR, YR) процедура, където X, Y - център на елипсата за показване координати, за XR и YR - хоризонтална и вертикална ос. Дъгата на елипсата е съставен от началния ъгъл до ъгъл край StAngle EndAngle текущия цвят на. Предистория вътре в елипсата съвпада с фона на екрана. Въз основа на факти математически елипса комуникация с кръга, то е възможно да се направят дъги и окръжности (но не и на елипсата), ако вземем в тази процедура равни стойности XR и YR. От друга страна, за изграждане на пълна процедура елипса елипса (X, Y, StAngle, EndAngle, XR, YR) да се постави StAngle = 0, EndAngle = 360.

За създаване на попълнено елипса, като се използва специална процедура FillEllipse (X, Y, XR, YR), където X, Y - центърът на елипсата да се покаже, координати на XR и YR - хоризонтална и вертикална ос. Filler SetFillStyle установена процедура. Очевидно е, че за да не чертаете попълнено елипса е необходимо да се определят цвета на процедура SetFillStyle фон.

Можете да създадете и да обсипе сектора в елипсата. Той използва процедура сектор (X, Y, StAngle, EndAngle, XR, YR), където X, Y - център, XR, YR - хоризонтални и вертикални радиуси, Stangle и EndAngle - начална и крайна ъгъл (в градуси).

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

Var I, г: цяло число;

SetLineStyle (SolidLn, 0, NormWidth);

SetFillStyle (SolidFill, Red);

Сектор (100, 200, 45, 135, 80, 80);

начален ъгъл 45, краен ъгъл 135 и радиус 80>

SetLineStyle (SolidLn, 0, ThickWidth);

SetFillStyle (SolidFill, жълто);

Правоъгълник (300, 10, 400, 70);

FloodFill (350, 50, червено);

SetLineStyle (SolidLn, 0, NormWidth);

SetFillStyle (7, червено);

Cercle (500, 250, 50);

FloodFill (500, 250, Cayan);

Vyvodteksta. Изображенията на екрана обикновено са придружени от обяснителен текст. В графика режими, използвани за тази процедура и OutText OutTextXY. процедура OutText (текст) показва ред текст от текущата позиция на Cp. OutTextXY Процедура (X, Y, Text), където X, Y - координати на началната точка на изхода на текст (горен ляв ъгъл на изходния текст), Text - постоянна или променлива от тип низ.

Tab. 5. Font Таблица

желания размер шрифт може да се настрои чрез друг метод - използва процедура SetUserCharSize (multX, DivX, мулти, divY: дума). Първите две контролни параметри за хоризонталния размер, двамата последно - вертикално. Ако вземем широчината на стандартен шрифт 1, съотношението multX / DivX ще определи ширината.

Тази таблица показва шрифтове 0 и с хоризонтална ориентация.

Ето един пример програма, която демонстрира използването на различни шрифтове и размери на шрифта при показването на текст.

Var I, г: цяло число;

SetTextStyle (DefaultFont, HorizDir, 3);

OutTextXY (5, 1 "DefaultFont размер 3 ');

SetTextStyle (TriplexFont, HorizDir, 1);

SetTextStyle (SmaillFont, 0, 4);

SetTextStyle (DefaultFont, VertDir, 3);

SetTextStyle (TriplexFont, 1, 1);

OutTextXY (5, 3, "TriplexFont размер 1 ');

SetTextStyle (GothicFont, VertDir, 2);

Инструменти за работа с фрагменти. Ефектът на движение в графичен режим. В допълнение към по-рано обсъдени графични инструменти за изграждане и показване на изображения има редица допълнителни процедури за записване и възстановяване на отделните фрагменти на изображението. За да манипулират фрагмента първо трябва да знаете неговия размер. Това се прави с помощта на ImageSize функция (X1, Y1, X2, Y2), където X1, Y1, X2, Y2 - координати на горния ляв ъгъл и долния десен ъгъл на правоъгълна област от екрана. Функцията връща размера в байтове на фрагмента. Тогава разпределени място във фрагмента в паметта на устройството. За да се използва тази процедура GetMem (Bitmap, размер), където Bitmap - променлива от тип указател, Размер - размера на фрагмента получава при използване на ImageSize.

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

Var I, г, Размер: цяло число; р: указател;

SetFillStyle (1, червено);

Размер: = ImageSize (18, 220, 42, 244);

Макар и да не правя KeyPressed

PutImage (I, 220, стр ^, NormalPut);

PutImage (I, 220, стр ^, NormalPut);

Тази програма изпълнява движение на червена топка от левия край на екрана от дясно и отзад. Процесът е спрян чрез натискане на произволен клавиш.

Лабораторни упражнения №7

Целта на работата. майсторски графични функции и процедури; научите как да се създаде програма за изграждане на различните върху екран изображенията, за да ги напълни с цвят; овладеят изход технология на екрана текст в графичен режим; за организиране на движението на графични обекти на монитора.

За обработка на необходимата графична информация, за да може да се инициализира режим на графичен дисплей, да знаят всички процедури и функции за изграждане на прости графични примитиви и да бъде в състояние да ги използват за изграждане на композитни (композитни) цифри. фигури на екрана въз основа на движение "колебание" на динамичен образ в паметта и след това го наричат ​​(обикновено в цикъла) на екрана последователни точки, което създава илюзията за движение. Необходимо е внимателно да разгледа по реда на поканата за тази цел съответните процедури и функции.

Преди извършването на работата е необходимо да се запознаете с теоретичния материал по темата "Graphics програмиране".

Пример 1. Създаване на програма за изграждане на модел, образуван от пресичането на две семейства, различни сегменти, в която К1 и К2 - разстоянието между левия и десния сегменти, и Н - изместване надолу наклон (нагоре) на цялото семейство.

Решение. Изграждане на хоризонтална линия е процедура линия (0, к, 640, к). Ако искате да се изгради и н с линии, това protsedure трябва да бъде поставен в една линия, защото аз: = 1 до п направи линия (0, I * к, 640, I * к). Наклонът на линии, получени чрез добавяне на стъпки до втория координира з (з> 0, с наклон надолу, Н2 в интервала [а, Ь].

Решение. За конструиране на графиката на функция е необходимо да се прекъсне сегмент [а, Ь] за п части (з - етап на разделяне (В-А) / п) и след това се извършват като се използват процедури и отсечки линия lineto които образуват многоъгълна линейна графика на функцията. Вие със сигурност може да се използва и крайна точка (точка интригите) на. Програмата за изчисляване функция изгради своите ценности в произволна точка и процедурата за изграждане на точки на полилиния, която е графика на функцията.

Var GD, GM, п: цяло число;

функция е (х: реален). недвижими;

Процедура Граф (x0, x1, y0, y1, п: дума; а, б: реален);

Var Н, m, X, t1, t2: реално;

Аз, U, V, XV, YV: дума;

Проучване programmirovanienayazykePaskal. Студентите изучават основите на алгоритмична по-силна и programmirovaniyanayazyke Basic (. Методичен набор от избираеми дисциплини "Развиващите за nayazykePaskal" включва уроци и семинари. Попов.

Подкрепете проекта - споделете линка, благодаря!