Ўзбекистон Республикаси Олий ва Ўрта Махсус таълим вазирлиги Фаргона политехника институти



Download 1,17 Mb.
bet41/69
Sana28.06.2022
Hajmi1,17 Mb.
#712699
1   ...   37   38   39   40   41   42   43   44   ...   69
Bog'liq
PASCAL

13 - Маъруза. Graph модули.


Режа.
Кириш.
Драйверлар, шрифтлар, видеорежимлар
Нукта , чи.зик, контур, ёй ва айланалар тасвири
Ранг, политра ва стилни бошкари


3.28Кириш


График тасвирларни экранда ифодалаш учун Turbo Pascal да GRAPH модули кулланилади. Унда 79 та процедура ва функциялар мавжуд.


GRAPH модули USES сузи оркали дастурга уланади:

USES Graph;




3.29Драйверлар


Графика драйверлари, стандарт драйверлар, фойдаланувчи драйверлари


Графика драйверлари куйидаги (. табл. 13.1) да келтирилган.
Табл. 13.1. Графика дайверлари

Драйвер

Адаптер

CGA.BGI

IBM CGA, MCGA

EGAVGA.BGI

IBM EGA, VGA

HERC.BGI

Hercules (mono)

ATT.BGI

AT&T 6300 (400 строк)

PC3270.BGI

IBM 3270 PC

IBM8514.BGI

IBM 8514

3.30Шрифтлар


Стандарт шрифтлар, фойдаланувчининг шрифтлари,

Матнларни графика режимларида чикариш стандарт ёки фойдаланивчининг шрифтлари оркали амалга оширилиши мумкин.


Табл. 13.2. Стандарт шифтлар



Шрифт

Файл

TriplexFont

TRIP.CHR

SmallFont

LITT.CHR

SansSerifFont

SANS.CHR

GothicFont

GOTH.CHR

Стандарт руйхат табл. 13.2 да келтирилган шрифтларни уз ичига олади .




3.31Видеорежимлар


Видеорежим, драйвер типи,


Драйвер типлари ва режимлари белгили константалар типада еки сонлар билан берилиши мумкин. Видеорежимлари аникловчи константлар табл. 13.3 да берилган.

Табл. 13.3. Видеорежимлар



Драйвер

Режим

Разрешение

Файл

CGA (1)

CGAC0, CGAHi

320x200 (640x200)

CGA.BGI

EGA (3)

EGALo, EGAHi

640x200 (640x350)

EGAVGA.BGI

VGA (9)

VGALo, VGAHi

640x200 (640x350)

EGAVGA.BGI

HERC (8)

HERCMONOHI

720x348

HERC.BGI



3.32Видеорежимни инициализациялаш


InitGraph, GetDriverName, GetGraphMode, GetModeRange, DetectGraph,
GetMaxMode, SetGraphMode, RestoreCRTMode, видеостраница, активная видеостраница, видимая видеостраница, SetActivePage SetVisualPage, GraphResult, GraphErrorMsg

Биринчи навбатда график режимлардан бирортасини урнатувчи InitGraph процедураси чакирилади:Ёзилиши




InitGraph(VAR DriverVar, ModeVar: integer; PathToDriver: string);

DriverVar и ModeVar узгариувчилари драйвер ва режимларнинг 13.3 таб. да келтирилган кийматларини беради.


Масалан: DriverVar := VGA; ModeVar := VGALo;


Дисплей типини билмаган фойдаланувчилар учун Detect стандарт константаси мавжуд. Агарда бу киймат DriverVar параметри билан узлаштирилган булса:


DriverVar := Detect;


у холда InitGraph автоматик равишда керакли драйверни инициаллаб, дисплей учун керакли режимни урнатади.


Учинчи парметр PathToDriver - GRAPH модулига маршрут урнатади.
USES Crt, Graph;
VAR
DriverVar, ModeVar: integer;
BEGIN
DriverVar := Detect;
InitGraph(DriverVar, ModeVar, '');

Графика режимни CloseGraph процедураси ердамида епилади.


Матн режимидан графика режимига утиш алгоритми куйидаги фрагментда кусатилган:
USES
Crt, Graph;
VAR
DriverVar, ModeVar: integer;
BEGIN
ClrScr;
Writeln('Текстли режим');
...
DriverVar:= Detect;
InitGraph(DriverVar,ModeVar,'');
OutTextXY(300,250,'Графика режими')
...
RestoreCRTMode;
Writeln(' 1-Матн режими');
...
SetGraphMode(ModeVar);
OutTextXY(300,250,' 1-Графика режими')
... CloseGraph
END.
Видио буфернинг хотираси бир нечта булимларга булинади . Уларни видеобетлар дейилади. Бетлар тартиб номери 0 дан бошланади..

Табл. 13.4. Видобетлар режими



Драйвер

Номер

Режим

Номер

Разрешение

Ранг

Бетлар

EGA

3

EGALO

0

640x200

16

4



EGAHI

1

640x350

16

2

VGA

9

VGALO

0

640x200

16

4



VGAMED

1

640x350

16

4

HERC

7

HERC-

0

720x348

2

2



MONOHI





Хар бир алохида моментда экранда бир бет тасвирланиши мумкин ва у куринувчи деб аталади. Берилган моментда тасвир акс эттирилган бет актив бет дейилади.


Видеобетлар билан ишлаш учун иккита процедура кулланилади: SetActivePage ва SetVisualPage .
Процедура SetActivePage(Page: word) процедураси актив бетни урнатади. Масалан:

SetActivePage(1);


Бетни ташкиллаб булгандан сунг, уни SetVisualPage(Page : word) процедураси ёрамида экранда курсатиш мумкин.


бу ерда Page - куринадиган бет тартиб раками


Масалан:

SetActivePage(0); {0 бетни экранда курсатиш }


OutText(' 0 - бет'); { экранда катор пайдо булади }
SetActivePage(1); {1- актив бет }
OutText('Страница 1'); { ! - бетда тасвирни шакллананиши, }
{ Лекин экранда катор йук ! }
Readln;
SetVisualPage(1); {1 - бетни курсатиш, экранда катор}
Графика дастурларида хам бошка дастурлардаги каби хатоликлар булиши мумкин.
Бундай хатоликларни аниклаш чун куйидаги иккита функциядан фойдаланилади: GraphResult и GraphErrorMsg.

GraphResult: Integer - бу функция, агарда хатолик булса ,0 кийматни акс холда-15..-1 диапозондаги сонларни кайтаради.


Мисол:
USES Graph;
VAR
ErrorNumber: integer;
BEGIN
ErrorNumber:= GraphResult;

Экранда тасвирни куриш учун координаталар ситемасидан фойдаланилади. Хисоб экран координатаси (0,0) булган юкори чап бурчакдан бошланади..


Тасвирни куриш учун , хеч булмаганда тавир чикариш бош нуктасини курсатиб утиш зарур. Матнли режимда бу вазифани курсор бажаради.Графика режимида кусор булмайди, лекин куринмас жорий курсатгич бор CP (Current Pointer), бу худди уша курсор, лекин у куринмайди.
Матнли режимларда курсорни GoToXY процедураси ёрдамида жойлаштириш силжитиш мумкин, графика режимларида эса Ср ни жойлаштирш учун бир нечта процедура ва функциялар мавжуд. Биринчи навбатда бу MoveTo и MoveRel.

MoveTo (X,Y: Integer)


Бу процедура жорий курсатгични Х,Y координатали нуктага жойлаштиради (силжитади). Масалан, MoveTo(200,100) процедураси СР ни 200,100 координатали нуктага жойлаштиради .


MoveRel (dX, dY: Integer)
Процедураси CP ни горизонтал буйича dX нуктага, вертикал буйича dY нуктага урнатади. MoveRel(5,10) процедураси эса Ср ни 200,100 координатали нуктадан 205,110 координатали нуктага жойлаштиради.
Жорий курсатгични назорат килиб бориш учун GetX ва GetY лардан фойдаланилади.

Масалан:
VAR


Xpos, Ypos: integer;
...
Xpos := GetX;
Ypos := GetY;
...
GetMaxX: integer и GetMaxY: integer,
X- ва Y-координаталарини режим учун мос булган максимал кийматларини кайтаради. Масалан:

X := 6000/10;


Y := 2000/2;
IF ((X > GetMaxX) OR (Y > GetMaxY)) THEN BEGIN
Write('!- диапазонни бузилганлиги!');
MarginHadling {хатларни тузатиш учун фойдаланувчи процедураси}
END;
MoveTo(I,J);

Матнли режилардаги каби графика экранини хам битта катта дарча ёки бир -нечта кичик дарчалар деб караш мумкин. Эслатиб утамиз, дарча бу экраннинг тугри бурчакли области булиб, тула экран фукцияларини бажаради. Дарча урнатилгандан сунг ,экран йук деб фараз килиниб, хамма киритиш чикариш операциялари шу дарчада бажарилади.


Экрандаги хамма тасвирларни учириш учун параметрларга эга булмаган ClearDevice рпоцедураси кулланилади.
SetViewPort(x1,y1,x2,y2: integer; Clip: boolean) процедураси эса , дарчаларни ташкил килади;
бу ерда x1, y1 - чап тепа бурчак координаталари, x2, y2 - унг паст бурчак координаталари. Clip параметри тасвир дарча чегарасига сигмаган пайтда ,тасвир кесилиб коладими (Clip:= True) ёки йукми (Clip:= False) лигини аниклайди.
Дарчани тозалаш учун ClearViewPort процедураси кулланилади.

Жорий дарча атрибутлари куйидаги процедура ёрдамида урнатилади:


GetViewSettings(VAR Vp : ViewPortType).


Vp узгарувчи ViewPortType нинг стандарт типига киради:


TYPE
ViewPortType = RECORD
x1, y1, x2, y2 : integer;
Clip : boolean
END;

Шуни ёдда саклаш керакки, матнли дарчалардан фарклирок, график дарча фонни урнатиш SetBkColor ва тозалаш ClearViewPort командалари урнатилгандан сунг фонни экраннинг умумий фони билан биргаликда узгартиради. Шунинг учун график дарчани (аникроги "буяшни") SetFillStyle ва etFillPattern. процедураси ёрдамида урнатилади. Тугри бурчакни Bar процедураси ёрдамида курилади


SetViewPort(100,50,500,200,True);


SetFillStyle(1,3); { фон типини танлаш}
Bar(100,50,500,200); { берилган фнли туги бурчак}

Download 1,17 Mb.

Do'stlaringiz bilan baham:
1   ...   37   38   39   40   41   42   43   44   ...   69




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish