Графикалық экранның режимі



Паскаль жүйесіндегі графика
Жоспар
Кріспе
Негізгі бөлім
Графикалық экранның режимі
Дисплей графикалық экранының режимі
Графикалық экран режимінің сипаттамалары
Экранның графикалық режимінің мүмкіндігі
Графикалық режимдегі палитра
Экрандық беттер мөлшері
GRAPH модулі
Графикалық режимді тағайындау және одан шығу
GRAPH модулі
Кейбір фунуциялар мен процедуралар
Графикалық режимді басқару командалары(экран, фон)
Программулау негіздері
Графикалық экранға нүкте шығару
Графикалық экранға кесінді салу
Кесінді салу стилі
Экранда көпбұрыш тұрғызу
Шеңбер, эллипс және олардың доғаларын тұрғызу
Толтыру процедуралары
Графикалық режимде экранға текст шығару
Функция графигін салу
Қорытынды
Пайдаланған әдебиеттер
КІРІСПЕ
Қазіргі дербес
Стандартты Паскальдың графикалық
Турбо Паскаль жүйесінде
Турбо Паскаль
Graph модулі IBM — типтес дербес
Турбо Паскалда графикалық драйверлер деп аталатын
Драйверлер Видеоадаптерлер
CGA.BGI CGA,MCGA
EGAVGA.BGI EGA,VGA
HERC.BGI Heercules(монохромды)
ATT.BGI AT&T6300(400жол)
PC3270.BGI 3270PC
IBM8514.BGI IBM — 8514
Көптеген видеоадаптерлер монитордың
Негізгі бөлім
Дисплей экранының графикалық режимі.
Әдеттте дисплей экраны екі режимде болады:
О(0, 0)
У
Экрандағы графикалық бейне графикалық экранының
Визуалды, көрінетін бет (буфер) деп сол
Тексттік экран сияқты графикалық экранның да
Графикалық курсордың тексттік курсордан айырмашылығы графикалық
Графикалық экран режимінің сипаттамалары
Графикалық режимнің төмендегідей сипаттамалары бар: мүмкіндігі
Бұл сипаттамалар, ең алдымен, дисплейдің техникалық
Экранның графикалық режимінің мүмкіндігі
Экранның графикалық режимінің мүмкіндігі экрандағы х,
Графикалық экранның мүмкіндігі дегеніміз — бұл
Графикалық режимдегі палитра.
Палитра (бояулар) дегеніміз — бұл графикалық
Black
Blue
Green
Cegan
Red
Magenta
Brown
Light Gray
Dark Gray
Light Blue
Light green
Light Cegan
Light Red
Light Magenta -13 -таңқурай түс
Yellow
White
Кестеде келтірілген түстердің ағылшынша атауларының номерлері
Экрандық беттер мөлшері
Экрандық режимнің графикалық экрандық беттерге арналған
Ең жоғарғы мүмкіндікті режимде тек бір
Экрандық бет графикалық режимде экранға шығару
GRAPH модулінде беттерді
SETACTIVPAGE () — бетті активті
SETVISUALPAGE () — бетті визуалдандыруға
Сонымен, режимдердің өлшемдері мен сипаттамалары дисплеймен,
VGA адаптерінің режимі үшін қысқаша нұсқау:
VGAL0 =0 — VGA-ға арналған ең
VGAMED=1 – VGA-ға арналған орташа мүмкіндікті
VGAH:=2 — VGA-ға жоғары мүмкіндікті графика
Графикалық режимді тағайындау және одан шығу
Жалпы алғанда, компьютерде негізгі екі экранрежимінің
Графикалық режимнен шығу үшін Closegraph процедурасы
INITGRAPH(DRIVER, MODE, ‘C:\BP\BGI’); — модуль жұмысын
мұндағы DRIVER — видеоадаптердің графикалық драйвердің
Ескерту.
Драйвердің типі адаптердің типіне сәйкес келуі
Драйвердің параметрі әдетте detect функциясымен беріледі;
Егер драйвер сол қалыпта тұратын болса,
Графикалық драйверлерді анықтау және олардың жұмыс
DRIVER MODE
Detect
CGA
MCGA =2
EGA
EGA64 =4
EGAMono=5 VGALo
IBM8514 =6 VGAMed
HereMono=7 VGAHi
Att400
VGA
PC3270 =10 VGA8514Hi
Графикалық режимінің тағайындалу нәтижесіекі функция модулінің
GRAPHresults функциясы кез-келген функция немесе процедура
Программада инициализация (нақтылау үшін) жасау үшін
USES GRAPH CRT;
Var driver, regim, error: integer;
S:char;
. .
driver:=detect;
INITGRAPH(driver, regim, ‘ ‘);
error:=Graphresult;
if error < >0 then
begin
writeln(‘Графикалық режимде қате бар!’);
writeln(‘tokta!’);
s:=readkey
end;

Графикалық режимде жұмыс істеу программасы
PROGRAM PROBA;
USES GRAPH;
VAR DRIVER, MODE ___ : INTEGER;
BEGIN
DRIVER:=DETECT;
INITGRAPH(DRIVER, MODE, ‘C:/BP/BGI’);
. . .
CLOSEGRAPH
END
GRAPH.TPU модулі
Графикалық режимді тағайындағаннан кейін пайдаланушы өзінің
графикалық экранды басқару үшін;
графикалық информацияны өңдеу және шығару үшін;
графикалық режимде текст шығару үшін.
Графикалық экранды басқару командалары
пайдаланылған драйвер туралы информацияны алу;
графикалық режимдердің мөлшерін және сипаттамаларын білу;
графикалық экранның жұмысына қажетті режимді тағайындау;
экранның графикалық беттерін басқару;
графикалық информациямен шығаруға арналған терезені іске
графикалық инормациямен шығару және фон
экранды графикалық курсормен басқару;
экранды немесе терезені тазарту жатады.
Графикалық информациямен енгізу және шығару командалары:
графикалық экранға нүкте, кесінді, тіктөртбұрыш, қисық
динамикалық жадыға графикалық экранның бөліктерін бейнелерімен
экрандағы тұйықтарды белгілі бір түстермен бояу
Графикалық режимде экранға текст шығару командалары
GRAPH модулінің командалары графикалық экранда кез-келген
Graph модуліндегі кейбір
Procedure PutPixel (X,Y: Integer; Pixel: Word)
Procedure Line (x1,y1, x2, y2:Integer) —
Procedure LineRel (Dx, Dy : Integer)
Procedure Line To (X,Y: Integer) —
Procedure Move To (X,Y: Integer) —
Procedure Move Rel (Dx, Dy: integer)
Procedure Out Text (Text String: string)
Procedure Out TextXY(X,Y: Integer, Text String:
Procedure RestoreCrtMode — тексттік режимге
Procedure SetColor (Color: Word) — сызықтың,
Procedure SetFillPattern (Pattern: FillPattern Type; Color:
Procedure Set Fill Style (Pattern: Word;
Procedure Set Text Style (f, n,
Procedure SetRGBPalette(c, r, g, b: Sortint)
Procedure Arc (X,Y :Integer; StAngel, EndAngle,
Procedure Sector (x,y : Integer, StAngle,
Procedure Rectangle (x1,y1, x2,y2: Integer) —
Procedure Bar (x1,y1,x2,y2: Integer) — боялған
Procedure Bar3D (x1,y1,x2,y2:Integer; Depth:Word; Top: Boolean)
Procedure GetImage (x1, y1, x2, y2
Procedure PutImage (x, y: integer; A:
Procedure Circle (X,Y: Integer; Radius: Word)
Procedure Clear Device — экранды
Procedure Clear ViewPort — терезені тазалау
Procedure CloceGraph — графикалық режимнен шығу
Procedure DrowPoly (NumPoints : Word; var
Procedure Ellipse (XY: Integer; StAngle, EndAngle
Procedure FillEllipse (X,Y: Integer; Xradius, Yradius:
Procedure FillPoly (NumPoints : Word; var
Procedure FloodFill (X,Y: Integer; Border: Word)—ағымдағы
Function GetColor : Word — сызықтар
Function GetMaxX : Integer — Х-тің
Function GetMaxY : Integer — У-тің
Function GetPixel (X,Y : Integer) :
Function GetX : Integer — Х-тің
Function GetY : Integer — У-тің
Графикалық экранды басқарудың негізгі командалары
INITGRAPH – графикалық режимді тағайындау
DETECT – графикалық драйверді автоматты түрде
CLOSEGRAPH – графикалық режимді жабу
SETGRAPHMODE – жаңа графикалық режимді тағайындайды.
CLEARDevice – процедурасы графикалық экранды тазалайды.
Экраннның барлық түзетулері, бастапқы қалыпқа келтіріліп,
SetViewPort процедурасы төртбұрыш терезені тағайындайды. Форматы:
мұндағы х1, у1, х2, у2
ClaerViewPort процедурасы – терезені тазалайды
GetMaxX және GetMaxY функциясы – тағайындалған
Типі integer, форматы: GetMaxX, GetMaxY.
MoveTo процедурасы курсорды көрсетілген координатаға орналастырады;
GETX және GETY функциялары курсордың ағымдағы
SetPalette процедурасы — берілген бояудағы түстің
SetAllPalette процедурасы – алдыңғысындағыдай, бояудағы түстің
GetPalette процедурасы ағымдағы бояудың сипаттамасын береді:
GetPaletteSize функциясы – ағымдағы графикалық режимнің
GetDefaultPalette процедурасы – ескертусіз тағайындалған графикалық
SetColor процедурасы – графикалық немесе тексттік
GetMaxColor функциясы – ағымдағы шығарылатын түстің
Форматы : GetMaxColor.
GetColor функциясы – ағымдағы графикалық режимдегі
Форматы: GetColor мәнінің типі Word.
SetBkColor процедурасы орындалғанда графикалық экранның ағымдағы
Форматы: SetBkColor (‹түсі›); мұндағы түс –
GetBkColor функциясы – шығарылатын ағымдағы фонның
GetMaxColor функциясы ағымдағы графикалық режимде тұратын
Форматы: GetMaxColor; мәнінің типі Word.
Графикалық экранға нүкте шығару
PutPixel процедурасы экранға нүктені көрсетілген координатасымен
Форматы: PutPixel(х, у, С); мұндағы х,
GetPixel функциясы – координатасы көрсетілген экранның
Графикалық экранға кесінді салу
LINE процедурасы бастапқы және соңғы нүктелерінің
Форматы Line (х1, у1, х2, у2);
LineTo процедурасы – кесіндіні ағымдағы курсор
LineRel процедурасы – кесіндіні ағымдағы түспен
Форматы: LineRel (dх, dу). Мұндағы dх,
Кесіндіні шығару стилі /сызықтық қалыңдықтары және
GRAPH модулінде шығарылатын кесіндінің түрін,
SetLineStyle процедурасы шығаратын сызықтың түрін тағайындайды.
Const
DottedLn=1; (........... нүктелік)
SenterLn=2; (_._._._ пунктирлі-штрих)
DashedLn=3; (
UserBitln=4; (пайдаланушы анықтайды)
Пайдаланушының стилі 16 пиксельдің қатарынан жануын
SetLineStyle процедурасы экранға шығарылатын кесінділердің стилін
Форматы: SetLineStyle (‹код›, ‹шаблон›, ‹қалыңдық›)
Мұндағы ‹код›: - мәні 0 мен
Экранда көпбұрыштар тұрғызу
RecTangle процедурасы диагональдарының төбелерінің координатасы бойынша
Форматы: RecTangle(х1, у1, х2, у2); мұндағы
Bar процедурасы – ағымдағы түспен боялған
Форматы: Bar(х1, у1, х2, у2: integer);
(Х1, У1) және (Х2, У2) нүктелері
Bar3d процедурасы – ағымдағы түспен параллелепипед
Форматы: Bar3d (х1, у1, х2, у2:
Setfillstyle және Setfillpattern процедураларының көмегімен тағайындалған
Drowpoly процедурасы ағымдағы түспен төбелерінің координаталары
Drowpoly (координаталарының саны: word; var төбелерінің
Const
Triangle: array[1...4] of point Type=((х:50; у:100),
(х:100; у:100);
(х:150; у:150),
. .
begin
. . .
Drowpoly (Size of (Triangle) div Size
. .
End;
Немесе
...
begin …
Drowpoly(4, Triangle);
… End;

Шеңбер, эллипс және олардың доғаларын тұрғызу
Circle процедурасы – ағымдағы түспен, көрсетілген
Форматы: Circle(х1, у1, радиус); мұндағы х1,
Arc процедурасы – ағымдағы түспен көрсетілген,
Бұрыштар центрдің оң жағынан, сағат стрелкасына
Форматы Ellipse(х, у, ББ, СБ, а,в);
Толтыру процедуралары
SetFillStyle процедурасышаблонның коды мен тұйық номері
Форматы: SetFillStyle (шаблон коды, С)
0 – тұтас тайғайындалған түспен толтыру
1 – белгілі бір түспен толтыру
2 –
7 –
12 – орындаушының стилімен толтыру
FloodFill процедурасы ағымдағы стильмен тұйық облыстың
Бұл процедура бояу барысында:
егер жиек шектелген болса және х,
егер жиек шектелген, бірақ х, у
жиек тұйықталмаған болса, онда х, у
: Word – шығарылатын сызықтың
Ескерту: қалыңдық тек екі мәнмен ғана
GetLineSetting процедурасы – осы мезетте тағайындалған
Форматы: GetLineSetting () мұндағы стиль ағымдағы
Ескерту: LineSetting Type типті GRAPH модулінде
Type LineSetting =recod
LineDtyle : Word; {стиль коды}
Pattern : Word;{шаблон}
Ticlines : Word;{қалыңдығы}
SetWriteMode процедурасы – экрандағы бейнені пиксельмен
FillPoly процедурасы – ағымдағы стильмен, түспен
Форматы: FillPoly (N, ); ммұндағы N
Ескерту: ол GRAPH модулінде бейнеленген.
type PointType=record x, y : integer;
FillEllipse процедурасы ағымдағы стильмен штрихталған, боялған,
Форматы: FillEllipse (х, у, ББ, СБ,
Мұндағы х, у : integer –
Sector процедурасы – ағымдағы стильмен штрихталып
Форматы: Sector (х, у, ББ, СБ,
PieSlice процедурасы – ағымдағы стильмен
Форматы: PieSlice (х, у, ББ, СБ,
Графикалық режимде экранға текст шығару командалары
GRAPH модулінде графикалық экранға текст жолдарын
OutText процедурасы ағымдағы түспен, графикалық курсордың
мұндағы Текст - типі string немесе
ОutTextXY процедурасы көрсетілген позициядан бастап экранға
Форматы: OutTextXY(х, у, Текст);
мұндағы х, у: integer – шығарылатын
Ескрту. Бұл процедурада OutText процедурасы тәрізді,
MoveTo(х, у); (курсорды тағаындау)
OutText(Текст);
SetTextStyle процедурасы шығарылатын тесттің стилін тағайындайды:
Форматы: SetTextStyle(шрифт, бағыт, өлшем);
мұндағы шрифт – типі Word, шрифт
бағыт – типі Word, бағыттың коды;
өлшем – типі Word, өлшем коды.
SetTextJustify (x, y : word) —
Х: 0 – сол жақтан, 1
У: 0 – төменнен, 1 –
Функцияның графигін салу
Функцияның графигін салу үшін мынадай әдіс
У=f(X) функциясының Х є [а, b]
Хі = Хі * k +
Уі = Уі * k +
Мұндағы Р, q координаталар жүйесі бар
Хmax * kх ≤
Мұндағы Х, У – аргументтің және
Енді мысал қарастырайық.
У = Х2 функциясының графигін тұрғызайық.
Program G1;
Uses Graph;
Var driver,
regim,
a, b, q, p, i, n,
Function f(z: real) : real;
Begin
f:=(x*x);
end;
Begin
driver:=detect;
initgraph (driver, regim, ‘ ‘);
a:=-10; b:=10; n:=60;
h:=(b-a)/h;
p:=300; q:=300; kx:=20; ky:=20;
SetBkColor(0) ;{фон түсі қара}
SetColor(11); {осьтер түсі көгілдір}
Line(0, q, 640, q); Line(p, 0,
SetColor(15); {жазу түсі}
OutTextXY(20,270, ‘x-oci’);
OutTextXY(320,20, ‘y-oci’);
SetColor(45); {күлгін график түсі}
x:=a; y:=f(a);
x:=x*kx+p; y:=y*ky+q;
MoveTo(trunc(x), trunc(y));
For i:=10 to n do
Begin
x:=a+i*h; y:=f(x);
x:=x*kx+p; y:=-y*ky+q;
LineTo(trunc(x), trunc(y));
End;
Readln;
CloseGraph;
End.
Қорытынды
Турбо Паскальдың графикалық мүмкіндіктерін толық пайдалану
Екі өлшемді кескіндерді салу (жазықтықтағы алуан
Үш өлшемді кескіндерді салу (кеңістіктегі геометриялық
Динамикалық кескіндерді салу (кескін проекциясын және
Әртүрлі оқу және ойын программаларын жасақтау.
ПАЙДАЛАНҒАН ӘДЕБИЕТТЕР
Нақысбеков Б.Қ., Халықова Г.З.
Паскаль тілінің негіздері А. (1998)
Бахыт Сыдықов
Алгоритмдеу және программалау негіздерін оқыту
Асылбек Хаметов, Бақытжамал Құтқожина
Турбо Паскаль программалауының бастамалары
2





Ұқсас жұмыстар

Паскаль жүйесіндегі графика
Турбо паскаль жүйесіндегі графика. Жұмыс істеп тұрған бағдаршамның бейнесін шығару
VGA графикасы, үшөлшемді бағдарламау және динамикалық бейнелеу
Графиктік режимге көшу адаптері
Орта мектеп жүйесін ақпараттық жобалау
Турбо паскальдағы графикалық процедура
Графикалық координаттар ( Турбо Паскаль )
ПАСКАЛЬ БАҒДАРЛАМАЛАУ ТІЛІНІҢ ГРАФИКАЛЫҚ МҮМКІНДІКТЕРІ
Turbo Pascal жүйесіндегі графиканы ұйымдастыру технологиясы
Бағдарламамен қамтамасыздандыруды өңдеу технологиясы