Жоспар
Кріспе
Негізгі бөлім
Графикалық экранның режимі
Дисплей графикалық экранының режимі
Графикалық экран режимінің сипаттамалары
Экранның графикалық режимінің мүмкіндігі
Графикалық режимдегі палитра
Экрандық беттер мөлшері
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 -10
Light Cegan -11- ашық
Light Red
Light Magenta -13 -таңқурай түс
Yellow
White
Кестеде келтірілген түстердің ағылшынша атауларының номерлері GRAPH модулі
Экрандық беттер мөлшері
Экрандық режимнің графикалық экрандық беттерге арналған бір немесе
Ең жоғарғы мүмкіндікті режимде тек бір ғана графикалық
Экрандық бет графикалық режимде экранға шығару буферінде кодталады.
GRAPH модулінде беттерді басқару
SETACTIVPAGE () — бетті активті жасауға арналған.
SETVISUALPAGE () — бетті визуалдандыруға арналған.
Сонымен, режимдердің өлшемдері мен сипаттамалары дисплеймен, оның адаптерімен
VGA адаптерінің режимі үшін қысқаша нұсқау:
VGAL0 =0 — VGA-ға арналған ең төменгі мүмкіндікті
VGAMED=1 – VGA-ға арналған орташа мүмкіндікті графика (640·350
VGAH:=2 — VGA-ға жоғары мүмкіндікті графика (640·480 нукте,
Графикалық режимді тағайындау және одан шығу
Жалпы алғанда, компьютерде негізгі екі экранрежимінің жұмысы—символдық және
Графикалық режимнен шығу үшін Closegraph процедурасы пайдаланылады.
INITGRAPH(DRIVER, MODE, ‘C:\BP\BGI’); — модуль жұмысын нақтылау (инициировать).
мұндағы DRIVER — видеоадаптердің графикалық драйвердің типін орнату
Ескерту.
Драйвердің типі адаптердің типіне сәйкес келуі тиіс.
Драйвердің параметрі әдетте detect функциясымен беріледі; - яғни
Егер драйвер сол қалыпта тұратын болса, Паскаль жүйесінің
Графикалық драйверлерді анықтау және олардың жұмыс режимдерін қою
DRIVER MODE
Detect =0 EGALo
CGA
MCGA =2 EGA64Lo
EGA
EGA64 =4 EGAMonoHi =3
EGAMono=5 VGALo
IBM8514 =6 VGAMed
HereMono=7 VGAHi
Att400 =8 PC3270Hi
VGA
PC3270 =10 VGA8514Hi =1
Графикалық режимінің тағайындалу нәтижесіекі функция модулінің мәндерінен көрінедіGRAPHresult:
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: string) —
Procedure RestoreCrtMode — тексттік режимге қайта оралу
Procedure SetColor (Color: Word) — сызықтың, нүктенің
Procedure SetFillPattern (Pattern: FillPattern Type; Color: Word) —
Procedure Set Fill Style (Pattern: Word; Color: Word)
Procedure Set Text Style (f, n, r :
Procedure SetRGBPalette(c, r, g, b: Sortint) — c
Procedure Arc (X,Y :Integer; StAngel, EndAngle, Radius :
Procedure Sector (x,y : Integer, StAngle, EndAngl, Xradius,
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 : integer;
Procedure PutImage (x, y: integer; A: pointer; M:
Procedure Circle (X,Y: Integer; Radius: Word) —
Procedure Clear Device — экранды тазалау және
Procedure Clear ViewPort — терезені тазалау және оны
Procedure CloceGraph — графикалық режимнен шығу
Procedure DrowPoly (NumPoints : Word; var PolyPoints) —
Procedure Ellipse (XY: Integer; StAngle, EndAngle : Word;
Procedure FillEllipse (X,Y: Integer; Xradius, Yradius: Word) —
Procedure FillPoly (NumPoints : Word; var PolyPoints) —
Procedure FloodFill (X,Y: Integer; Border: Word)—ағымдағы түспен тұйық
Function GetColor : Word — сызықтар мен контурлардың
Function GetMaxX : Integer — Х-тің ең үлкен
Function GetMaxY : Integer — У-тің ең үлкен
Function GetPixel (X,Y : Integer) : Word —
Function GetX : Integer — Х-тің координатасын қайтару
Function GetY : Integer — У-тің координатасын қайтару.
Графикалық экранды басқарудың негізгі командалары
INITGRAPH – графикалық режимді тағайындау
DETECT – графикалық драйверді автоматты түрде анықтау
CLOSEGRAPH – графикалық режимді жабу
SETGRAPHMODE – жаңа графикалық режимді тағайындайды. SETGRAPHMODE
CLEARDevice – процедурасы графикалық экранды тазалайды. CLAERDevice –
Экраннның барлық түзетулері, бастапқы қалыпқа келтіріліп, курсор экранының
SetViewPort процедурасы төртбұрыш терезені тағайындайды. Форматы: SetViewPort (х1,
мұндағы х1, у1, х2, у2 - тіктөртбұрштың
ClaerViewPort процедурасы – терезені тазалайды
GetMaxX және GetMaxY функциясы – тағайындалған графикалық режимде
Типі integer, форматы: GetMaxX, GetMaxY.
MoveTo процедурасы курсорды көрсетілген координатаға орналастырады; форматы: MoveTo(х,
GETX және GETY функциялары курсордың ағымдағы координатасын анықтайды.
SetPalette процедурасы — берілген бояудағы түстің реттік номері
SetAllPalette процедурасы – алдыңғысындағыдай, бояудағы түстің барлық реттік
GetPalette процедурасы ағымдағы бояудың сипаттамасын береді: түстердің мөлшерін,
GetPaletteSize функциясы – ағымдағы графикалық режимнің бояуындағы түстердің
GetDefaultPalette процедурасы – ескертусіз тағайындалған графикалық режимнің бояулардың
SetColor процедурасы – графикалық немесе тексттік информацияны графикалық
GetMaxColor функциясы – ағымдағы шығарылатын түстің номерін береді.
Форматы : GetMaxColor.
GetColor функциясы – ағымдағы графикалық режимдегі түстің ең
Форматы: GetColor мәнінің типі Word.
SetBkColor процедурасы орындалғанда графикалық экранның ағымдағы фонның түсі
Форматы: SetBkColor (‹түсі›); мұндағы түс – Word типті
GetBkColor функциясы – шығарылатын ағымдағы фонның түсін береді.
GetMaxColor функциясы ағымдағы графикалық режимде тұратын түстің ең
Форматы: GetMaxColor; мәнінің типі Word.
Графикалық экранға нүкте шығару
PutPixel процедурасы экранға нүктені көрсетілген координатасымен және түсімен
Форматы: PutPixel(х, у, С); мұндағы х, у -
GetPixel функциясы – координатасы көрсетілген экранның графикалық нүктесінің
Графикалық экранға кесінді салу
LINE процедурасы бастапқы және соңғы нүктелерінің көрсетілген координатасы
Форматы Line (х1, у1, х2, у2); мұндағы х1,
LineTo процедурасы – кесіндіні ағымдағы курсор тұрған нүктеден
LineRel процедурасы – кесіндіні ағымдағы түспен курсор тұрған
Форматы: LineRel (dх, dу). Мұндағы dх, dу –
Кесіндіні шығару стилі /сызықтық қалыңдықтары және түрлері/
GRAPH модулінде шығарылатын кесіндінің түрін, стилін анықтайтын
SetLineStyle процедурасы шығаратын сызықтың түрін тағайындайды. Ол тек
Const
DottedLn=1; (........... нүктелік)
SenterLn=2; (_._._._ пунктирлі-штрих)
DashedLn=3; (
UserBitln=4; (пайдаланушы анықтайды)
Пайдаланушының стилі 16 пиксельдің қатарынан жануын кодтауға мүмкіндік
SetLineStyle процедурасы экранға шығарылатын кесінділердің стилін тағайындайды.
Форматы: SetLineStyle (‹код›, ‹шаблон›, ‹қалыңдық›)
Мұндағы ‹код›: - мәні 0 мен 4 аралығындағы
Экранда көпбұрыштар тұрғызу
RecTangle процедурасы диагональдарының төбелерінің координатасы бойынша тіктөртбұрыш сызады.
Форматы: RecTangle(х1, у1, х2, у2); мұндағы х1, у1
Bar процедурасы – ағымдағы түспен боялған тіктөртбұрыш сызады.
Форматы: Bar(х1, у1, х2, у2: integer);
(Х1, У1) және (Х2, У2) нүктелері боялған тіктөртбұрыштың
Bar3d процедурасы – ағымдағы түспен параллелепипед сызады.
Форматы: Bar3d (х1, у1, х2, у2: integer; биіктігі:
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 of(Point Type),
. . .
End;
Немесе
...
begin …
Drowpoly(4, Triangle);
… End;
…
Шеңбер, эллипс және олардың доғаларын тұрғызу
Circle процедурасы – ағымдағы түспен, көрсетілген центр және
Форматы: Circle(х1, у1, радиус); мұндағы х1, у1 –
Arc процедурасы – ағымдағы түспен көрсетілген, центр, радиус
Бұрыштар центрдің оң жағынан, сағат стрелкасына қарсы, горизонталь
Форматы Ellipse(х, у, ББ, СБ, а,в); мұндағы
Толтыру процедуралары
SetFillStyle процедурасышаблонның коды мен тұйық номері бойынша толтырустилін
Форматы: SetFillStyle (шаблон коды, С)
0 – тұтас тайғайындалған түспен толтыру
1 – белгілі бір түспен толтыру
2 –
7 –
12 – орындаушының стилімен толтыру
FloodFill процедурасы ағымдағы стильмен тұйық облыстың ішін бояйды.
Бұл процедура бояу барысында:
егер жиек шектелген болса және х, у нүктесі
егер жиек шектелген, бірақ х, у тұйық облыстың
жиек тұйықталмаған болса, онда х, у нүктесінің орнына
: Word – шығарылатын сызықтың қалыңдығын көрсетеді;
Ескерту: қалыңдық тек екі мәнмен ғана беріледі: 1
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 (х, у, ББ, СБ, R);
Графикалық режимде экранға текст шығару командалары
GRAPH модулінде графикалық экранға текст жолдарын шығаруға арналған
OutText процедурасы ағымдағы түспен, графикалық курсордың ағымдағы позициясынан
мұндағы Текст - типі string немесе char болып
ОutTextXY процедурасы көрсетілген позициядан бастап экранға текст шығарады.
Форматы: OutTextXY(х, у, Текст);
мұндағы х, у: integer – шығарылатын тексттің позициясын
Ескрту. Бұл процедурада OutText процедурасы тәрізді, бірақ курсор
MoveTo(х, у); (курсорды тағаындау)
OutText(Текст);
SetTextStyle процедурасы шығарылатын тесттің стилін тағайындайды: шрифт, бағыт
Форматы: SetTextStyle(шрифт, бағыт, өлшем);
мұндағы шрифт – типі Word, шрифт коды;
бағыт – типі Word, бағыттың коды;
өлшем – типі Word, өлшем коды.
SetTextJustify (x, y : word) — мәтінді автоматты
Х: 0 – сол жақтан, 1 – ортадан,
У: 0 – төменнен, 1 – ортадан, 2
Функцияның графигін салу
Функцияның графигін салу үшін мынадай әдіс ұсынылады. Координаталар
У=f(X) функциясының Х є [а, b] аралығындағы графигін
Хі = Хі * k + p,
Уі = Уі * k + q, і=1...n
Мұндағы Р, q координаталар жүйесі бар нүктесінің экрандағы
Хmax * kх ≤ (225 –
Мұндағы Х, У – аргументтің және функция мәндерінің
Енді мысал қарастырайық.
У = Х2 функциясының графигін тұрғызайық.
Program G1;
Uses Graph;
Var driver,
regim,
a, b, q, p, i, n, x, y,
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, p, 475);
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)
Бахыт Сыдықов
Алгоритмдеу және программалау негіздерін оқыту
Асылбек Хаметов, Бақытжамал Құтқожина
Турбо Паскаль программалауының бастамалары
32