Автор работы: Пользователь скрыл имя, 20 Февраля 2012 в 15:56, реферат
Турбо Паскаль графикасын, көбінесе, псевдо - графика деп атайды, өйткені тілдің өзінде графикалық командалары келтірілмеген. GRAPH модулінде графикалық информацияларды дисплей экранына шығаруға және өңдеуге арналған командаларды сүйемелдейтін типтер, тұрақтылар, айнымалылар, процедуралар мен функциялар сипатталады.
I. Кріспе
II. Негізгі бөлім
1. Графикалық экранның режимі
1. Дисплей графикалық экранының режимі
2. Графикалық экран режимінің сипаттамалары
3. Экранның графикалық режимінің мүмкіндігі
4. Графикалық режимдегі палитра
5. Экрандық беттер мөлшері
2. GRAPH модулі
1. Графикалық режимді тағайындау және одан шығу
2. GRAPH модулі
3. Кейбір фунуциялар мен процедуралар
4. Графикалық режимді басқару командалары(экран, фон)
3. Программулау негіздері
1. Графикалық экранға нүкте шығару
2. Графикалық экранға кесінді салу
3. Кесінді салу стилі
4. Экранда көпбұрыш тұрғызу
5. Шеңбер, эллипс және олардың доғаларын тұрғызу
6. Толтыру процедуралары
7. Графикалық режимде экранға текст шығару
8. Функция графигін салу
III. Қорытынды
SetLineStyle процедурасы шығаратын сызықтың түрін тағайындайды. Ол тек кесінді үшін ғана емес, содай-ақ кез-келген геометриялық объектілерді сызу үшін де пайдаланылады. Модульде шығарылатын кесіндінің стандартты стильдерінің коды 0...3 енгзілген, ал 4-ші код бойынша пайдаланушының анықтайтын стилі алынады. Олар модульдің белгіленген тұрақтылары болып табылады:
Const SolidLn=0; (_______тұтас)
DottedLn=1; (........... нүктелік)
SenterLn=2; (_._._._ пунктирлі-штрих)
DashedLn=3; ( пунктир)
UserBitln=4; (пайдаланушы анықтайды)
Пайдаланушының стилі 16 пиксельдің қатарынан жануын кодтауға мүмкіндік береді. Бұдан 16 биттен тұратын жол шығады; 1 – пиксельдің ағымдағы түспен жанатынын көрсетеді; ал 0 – керісінше.
SetLineStyle процедурасы экранға шығарылатын кесінділердің стилін тағайындайды.
Форматы: SetLineStyle (‹код›, ‹шаблон›, ‹қалыңдық›)
Мұндағы ‹код›: - мәні 0 мен 4 аралығындағы стиль коды, ‹шаблон›: - пайдаланушы стилінің шаблонының коды, ол стиль коды тек 4-ке тең болған жағдайда ғана пайдаланады.
Экранда көпбұрыштар тұрғызу
RecTangle процедурасы диагональдарының төбелерінің координатасы бойынша тіктөртбұрыш сызады.
Форматы: RecTangle(х1, у1, х2, у2); мұндағы х1, у1 – тіктөртбұрышының сол жақ жоғарғы төбесінің координатасы, ал х2, у2 – оң жақ төменгі төбесінің координатасы.
Bar процедурасы – ағымдағы түспен боялған тіктөртбұрыш сызады.
Форматы: Bar(х1, у1, х2, у2: integer);
(Х1, У1) және (Х2, У2) нүктелері боялған тіктөртбұрыштың сол жақ жоғарғы және оң жақ төменгі бұрыштарының нүктелерінің координаталары. Setfillstyle және Setfillpattern процедураларының көмегімен бояудың түсі мен үлгісі тағайындалады.
Bar3d процедурасы – ағымдағы түспен параллелепипед сызады.
Форматы: Bar3d (х1, у1, х2, у2: integer; биіктігі: word; төбесі: boolean);
Setfillstyle және Setfillpattern процедураларының көмегімен тағайындалған түспен боялған үш өлшемді параллелепипед сызылады. Биіктігі параметрі үш өлшемді контурдың биіктігін бейнелейтін сан. Егер төбесі параметрі бойынша алынған айнымалы ақиқат мән (True) қабылдайтын болса, онда үш өлшемді параллелепипедтің төбесі сызылады. Төбесінің параметрі жалған мән қабылдаса (False), төбесі сзылмайды. Мұндай өзгерістер жасау үшін программадағы “Т” параметрінің қабылдайтын мәнін өзгертсек жеткілікті.
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), Triangle);
. . .
End;
Немесе
...
begin …
Drowpoly(4, Triangle);
… End;
…
Шеңбер, эллипс және олардың доғаларын тұрғызу
Circle процедурасы – ағымдағы түспен, көрсетілген центр және радиус бойынша шеңбер сызады.
Форматы: Circle(х1, у1, радиус); мұндағы х1, у1 – центрінің координатасы; типі integer;‹радиус› - типі Word болып келген радиус.
Arc процедурасы – ағымдағы түспен көрсетілген, центр, радиус және доғаның бастапқы және соңғы бұрыштары бойынша шеңбер доғасын сызады. Форматы: Arc(х1,у1, ‹ББ›‹СБ›‹радиус› )
Бұрыштар центрдің оң жағынан, сағат стрелкасына қарсы, горизонталь радиустан бастап есептеледі. Мысалы, 1-ширектегі шеңбер доғасы үшін бастапқы бұрыш 00-қа, соңғы бұрыш – 900-қа тең. Ellipse процедурасы ағымдағы түспен эллипс доғасын сызады (көрсетілген центр, доғаның бастапқы және соңғы бұрыштарын және эллипстің жарты осьтері бойынша). Бұрыштар — сағат тіліне қарсы, центрдің оң жағынан горизонталь радиустан бастап есептеледі. Егер бұрыштары сәйкес 00 және 3600 деп берсе, онда тұтас эллипс сызылады. Жарты осьтер экранның графикалық бірлігімен беріледі.
Форматы Ellipse(х, у, ББ, СБ, а,в); мұндағы х,у – эллипс центрі; ББ,СБ – эллипс доғасының сәйкес бастапқы және соңғы бұрышы, ал а, в – горизонталь және вертикаль жарты осьтер.
Толтыру процедуралары
SetFillStyle процедурасышаблонның коды мен тұйық номері бойынша толтырустилін тағайындайды.
Форматы: SetFillStyle (шаблон коды, С)
0 – тұтас тайғайындалған түспен толтыру
1 – белгілі бір түспен толтыру
2 – 3 – 4 – 5 – 6 –
7 – 8 – 9 – 10 – 11 –ь
12 – орындаушының стилімен толтыру
FloodFill процедурасы ағымдағы стильмен тұйық облыстың ішін бояйды. Форматы: FloodFill (х, у, С); мұндағы х, у : integer, - графикалық экрандағы нүктенің координатасы; С : Word – фигура жиегінің түсі.
Бұл процедура бояу барысында:
1 егер жиек шектелген болса және х, у нүктесі оның ішінде жатса, онда фигураның ішкі облысы боялады;
2 егер жиек шектелген, бірақ х, у тұйық облыстың сыртында болса, фигураның сырт жағы боялады;
3 жиек тұйықталмаған болса, онда х, у нүктесінің орнына тәуелсіз толық экран боялады не штрихталады.
<қалыңдық> : Word – шығарылатын сызықтың қалыңдығын көрсетеді;
Ескерту: қалыңдық тек екі мәнмен ғана беріледі: 1 не 3, яғни 1 немесе 3 пиксель.
GetLineSetting процедурасы – осы мезетте тағайындалған кесіндіні экранға шығару стилі.
Форматы: GetLineSetting (<стиль>) мұндағы стиль ағымдағы стильді сипаттайтын LineSetting Type типті айнымалы.
Ескерту: LineSetting Type типті GRAPH модулінде сипатталған.
Type LineSetting =recod
LineDtyle : Word; {стиль коды}
Pattern : Word;{шаблон}
Ticlines : Word;{қалыңдығы}
SetWriteMode процедурасы – экрандағы бейнені пиксельмен экранға шығаратын кесіндінің пикселінің өзара әсерлесу тәсілін анықтайды.
FillPoly процедурасы – ағымдағы стильмен, түспен шегі жиектелген көпбұрышты экранға шығарады.
Форматы: FillPoly (N, <координата>); ммұндағы N – типі Word болатын көпбұрыш төбелерінің саны; <координата> – PointType айнымалы типті төбелерінің координаталарының мәндері.
Ескерту: ол GRAPH модулінде бейнеленген.
type PointType=record x, y : integer;
FillEllipse процедурасы ағымдағы стильмен штрихталған, боялған, шеті ағымдағы түспен шектелген эллипс сызады.
Форматы: FillEllipse (х, у, ББ, СБ, а, в);
Мұндағы х, у : integer – эллипс центрі, ББ,СБ – доғаның сәйкес бастапқы және соңғы бұрыштары, а – горизонталь, в – вертикаль жарты осьтері.
Sector процедурасы – ағымдағы стильмен штрихталып боялған, шеті ағымдағы түспен шектелген эллипс секторын экранға шығарады.
Форматы: Sector (х, у, ББ, СБ, а, в); х, у – эллипс секторының центрі; ББ, СБ – сәйкес сектордың бастапқы және соңғы бұрыштары, а, в – жарты осьтер.
PieSlice процедурасы – ағымдағы стильмен штрихталып боялған, шеті ағымдағы түспен жиектелген шеңбер секторын экранға шығарады.
Форматы: PieSlice (х, у, ББ, СБ, R); R – радиус.
Графикалық режимде экранға текст шығару командалары
GRAPH модулінде графикалық экранға текст жолдарын шығаруға арналған командалар бар, тек жолдарды экранға шығарып қана қоймайды. Мысалы,
OutText процедурасы ағымдағы түспен, графикалық курсордың ағымдағы позициясынан бастап, тағайындалған бағытта текстті (жолды) шығарады. Форматы: OutText(Текст);
мұндағы Текст - типі string немесе char болып келген шығарылатын текст.
ОutTextXY процедурасы көрсетілген позициядан бастап экранға текст шығарады.
Форматы: OutTextXY(х, у, Текст);
мұндағы х, у: integer – шығарылатын тексттің позициясын көрсетеді, Текст - типі char немесе string болып келген текст мәні.
Ескрту. Бұл процедурада OutText процедурасы тәрізді, бірақ курсор көрсетілген орында қалады. Шын мәнінде бұл процедура екі процедураның қызметін атқарады:
MoveTo(х, у); (курсорды тағаындау)
OutText(Текст);
SetTextStyle процедурасы шығарылатын тесттің стилін тағайындайды: шрифт, бағыт өлшем.
Форматы: SetTextStyle(шрифт, бағыт, өлшем);
мұндағы шрифт – типі Word, шрифт коды;
бағыт – типі Word, бағыттың коды;
өлшем – типі Word, өлшем коды.
SetTextJustify (x, y : word) — мәтінді автоматты түрде жатық (х) және тік жол (у) бағыттарында қатарластырады.
Х: 0 – сол жақтан, 1 – ортадан, 2 – оң жақтан;
У: 0 – төменнен, 1 – ортадан, 2 – жоғарыдан.
Функцияның графигін салу
Функцияның графигін салу үшін мынадай әдіс ұсынылады. Координаталар жүйесінің бас нүктесі экранның кез-келген жеріне орналаса алады. Функция мәндеріне байланысты масштабтық коэфиценттер енгізіледі де, экрандық нүктелерге сәйкес түрлендіру формулалары жалпылама жазылады.
У=f(X) функциясының Х є [а, b] аралығындағы графигін тұрғызу үшін, алдымен табуляциялық жолмен есептеп алу қажет: Хі = а + іҺ, Уі =f(Хі), і=1...n, мұндағы Н = (b-а)/n. Ал, N-ді өзіміз таңдап аламыз. Одан кейін мынадай түрлендіру формулаларын пайдаланамыз:
Хі = Хі * k + p,
Уі = Уі * k + q, і=1...n
Мұндағы Р, q координаталар жүйесі бар нүктесінің экрандағы координаталары, ал масштабтық коэфиценттер төмендегі шарттармен анықталады:
Хmax * kх ≤ (225 – p), Уmax * k ≤ q
Мұндағы Х, У – аргументтің және функция мәндерінің ең үлкен шамалары. Барлық параметрлер анықталғаннан кейін функция графигі (Хі, Уі) нүктелерінің арасын қосатын кесінділер арқылы сызылады.
Енді мысал қарастырайық.
У = Х2 функциясының графигін тұрғызайық.
Program G1;
Uses Graph;
Var driver,
regim,
a, b, q, p, i, n, x, y, kx, ky, h : real;
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.
Қорытынды
Турбо Паскальдың графикалық мүмкіндіктерін толық пайдалану арқылы төмендегі жұмыстарды атқаруға болады:
Екі өлшемді кескіндерді салу (жазықтықтағы алуан түрлі геометриялық фигуралар мен сызбалар, неше түрлі графиктер, диаграммалар, пииктограммалар схемалар және т.б.);
Үш өлшемді кескіндерді салу (кеңістіктегі геометриялық фигуралар мен денелер, беттер, гистограммалар, диаграммалар және т.б.);
Динамикалық кескіндерді салу (кескін проекциясын және қалпын өзгерту, анимациялау, көру эффектісін туғызу және т.б.);
Әртүрлі оқу және ойын программаларын жасақтау.
ПАЙДАЛАНҒАН ӘДЕБИЕТТЕР
1. Нақысбеков Б.Қ., Халықова Г.З.
Паскаль тілінің негіздері А. (1998)
2. Бахыт Сыдықов
Алгоритмдеу және программалау негіздерін оқыту
3. Асылбек Хаметов, Бақытжамал Құтқожина
Турбо Паскаль программалауының бастамалары
4