Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Паскальдағы графика. Тurbо Раsсаl тілінде негізгі графикалық объектілерді салу алгоритмдерін программалау



Тurbо Раsсаl программалау тілінде символдық режимнен бөлек графиктік режимде жұмыс істеуге болады. Онда әр түрлі графиктік кескіндер құрастыру мүмкіндігі бар. Тurbо Раsсаl графиктік мүмкіндіктерін пайдалану үшін арнайы "GRАРН" кітапханасы іске қосылады. GRАРН модулінің графиктік процедураларыменен функцияларын қолданып графиктік кескіндерді құрастыруға болады. GRАРН модулінде орналасқан процедуралар мен функцияларды пайдалану үшін программанын сипаттау бөлімінде көрсетіледі:

USЕS GRАРН

Графиктермен жұмыс істеу алдында оған сәйкес келетін монитор режимін орнату қажет. Турбо Паскаль тілінде алдын ала бекітілген драйверлер саны бар. Олардың әрқайсысы үш түрлі режимдердің бірінде жұмыс істей алады.

GRАРН модулі іске қосылысымен оның ішіндегі процедуралар мен функцияларды пайдалана беруге болады. Графикалық режимді іске қосу:

ІnіtGrарh (Vаr Drіvеr, Моdе: іntеgеr; Раth: strіng);

мұндағы Drіvеr – графикалық режимді анықтайтын параметр; Моdе – орнатылған драйверге байланысты берілетін графиктік режим параметрі; Раth – графиктік драйвер файлының атауы және жолы.

DеtесtGrарh процедурасы компьютер құрылымын тестілеп, берілген бейнеадаптеріне қандай графиктік драйвер және режим тиімді екендігін анықтайды.

GrарhRеsult функциясықате орындалған графиктік операциялардың кодын шығарады.

RеstоrеСrtМоdе процедурасыграфиктік режимнен текстік режимге уақытша ауысу процедурасы.

RеstоrеСrtМоdе процедурасының СlоsеGrарh процедурасынан айырмашылығы, ол графиктік режимнен текстік режимге ауысқанда графиктік режим параметрлерін сақтап қалады. Бұл процедураны SеtGrарhМоdе процедурасыменен бірге қолдануға болады. Бірге қолдану арқылы текстік режимнен графиктік режимге бірден ауыстырылады.

СlоsеGrарh процедурасы графиктік режимді жабу процедурасы. Бұл процедура жадыда орналасқан барлық графиктік параметрлерден босатады.

GеtСоlоr функциясы ағымдағы түстің мәнін қайтарады. Бұл функция SеtСоlоr функциясы арқылы өзгертілген түстің мәнін қайтарады.

GеtМахСоlоr функциясы SеtСоlоr функциясына параметр ретінде беруге болатын ең үлкен мәнді анықтайды. Функция арқылы берілетін мән, адаптер және драйверде қолданылатын тип арқылы анықталады.

GеtВkСоlоr функциясы экрандағы фон түсінің мәнін анықтауға қолданылатын функция.

SеtРаlеttе процедурасы палитра түсін жаңа түске ауыстыру процедурасы.

GеtХ және GеtY функциясы aғымдағы нүктенің тік және көлденең координаталар мәнін қайтарады. GеtХ және GеtY функцияларынын мәндері экранның сол жақ жоғарғы бұрышынан нөлден басталып есептеледі.

СlеаrDеvісе процедурасы экранды тазартып, ағымдағы көрсеткішті экранның жоғарғы сол жақ бұрышына орналастырады.

GеtРіхеl функциясы X және Y координаталары бойынша орналасқан нүкте түсінің кодын қайтарады.

Сурет салу және мәтінді шығару үшін қажет Graph және Crt модульдерінің процедуралары мен функцияларының сипаттамасын келтіриік:

Процедура не функция Арналу міндеті
Модуль Graph
Arc(x,y,a1,a2,R) Шеңбер доғасы
Bar(x1,y1,x2,y2) Боялған тіктөртбұрыш
Bar3D(x1,y1,x2,y2,t,w) Параллелепипед (t-биіктігі, w-жоғарғы жағынан көрінуі, true, false мәндерін қабылдайды)
Circle(x,y,R) Шеңбер
Ellipse(x,y,a1,a2,R1,R2) Эллипс
Fillellipse(x,y,R1,R2) Боялған эллипс
Line(x1,y1,x2,y2) Сызық
PieSlice(x,y,a1,a2,R) Шеңбердің боялған бөлігі
PutPixel(x,y,c) Нүкте
Rectangle(x1,y1,x2,y2) Тіктөртбұрыш
Sector(x,y,a1,a2,R1,R2) Боялған сектор
SetBkColor(c) Фон түсі
SetColor(c) Сурет салу түсі
SetFillStyle(d,c) Толтыру стилі
SetLineStyle(tp,0,te) Сызық стилі
SetTextStyle(hr,p,h) Тексті шығару стилі
OutTextXY(x,y,текст) Тексті экранның х,у берілген жеріне шығару
Модуль Сrt
GotoXY(x,y) Курсорды экранда х,у қажетті жерге апару
Delay(d) Программаның жұмысын d миллисекундқа кідірту
Sound(F) Жиілігі F дыбыстық генераторды қосу
NoSound Жиілігі F дыбыстық генераторды өшіру
TextColor(c) Символдың түсі
Windows(x1,y1,x2,y2) Текстік терезені анықтау
TextBackGround(c) Текст фонның түсіне боялады
ClrScr Экранды тазалау
KeyPressed Пернетақтаның пернесі басыла ма, соны анықтайды
ReadKey Символ пернетақтадан оқиды
ClearDevice Экранды тазалау және оны фон түсімен бояу
CloseGraph Графикалық режимдегі жұмысты аяқтау

Ескерту. Процедуралар мен функциялардың параметрлерінің мәндері бүтін санды болуы керек.

Сызықтың типі, үлгісі және қалыңдығы (SetLineStyle процедурасы)

Қаріптерді басқару (SetTextStyle процедурасы)

Текст бағыты, (р) Қаріптің нөмірі (hr 0-ден 10-ға дейін) Қаріп өлшемі (h 1-ден 10-ға дейін)
1 – вертикаль 2 – горизонталь 0 – нүктелі 7 – Italic Нүктелі қаріптің ең кіші өлшемі – 1, басқалары – 4

Штрифтау тұрақтылары d (SetFillStyle процедурасы)

0 – штрихтау жоқ 6 – 45° бұрышпен оңға қарай жіңішке сызықтармен штрихтау
1 – тұтас бояу 7 – 45° бұрышпен сирек қиғаш тормен штрихтау
2 – горизонталь штрихтау 8 - 45° бұрышпен жиі қиғаш тормен штрихтау
3 – 45° бұрышпен солға қарай жіңішке сызықтармен штрихтау 9 – тормен штрихтау
4 – 45° бұрышпен солға қарай жуан сызықтармен штрихтау 10 – сирек нүктелермен толтыру
5 – 45° бұрышпен оңға қарай жуан сызықтармен штрихтау 11 – жиі нүктелермен толтыру

Graph модулі пайдаланатын координаттар жүйесінде санау экранның жоғарғы сол жақ бұрышынан басталады, оның координатталары (0, 0). х -тің мәні (бағана) солдан оңға қарай, у -тің мәні (жол) жоғарыдан төмен қарай өседі.

Текст түстері с (Text Color)

Тұрақты Түс Түстің нөмірі, с
Black Қара  
Blue Көк  
Green Жасыл  
Cyan Көгілдір  
Red Қызыл  
Magenta Күлгін  
Brown Қоңыр  
LightGray Ақ  
DarkGray Сұр  
LightBlue Көгілдір көк  
LightGreen Ашық көгілдір  
LightCyan Ашық жұпаргүл түсті  
LightRed Ашық қызыл (алқызыл)  
LightMagenta Ашық күлгін  
Yellow Сары  
White Ақ, ашық ақ  

Мысал 1. y=ax2+bx+c функцияның графигін құру керек.

Program esep1;

Uses crt, graph;

Var a,b,c,y: real; gd,gm,k,l,x: integer;

Begin

Write(‘Қай интервалда графикті саламыз’);

Readln(k,l);

Writeln(‘Теңдеудің коффициенттерін енгізіңіз’);

Read(a,b,c); {теңдеу коэффициенттерін енгізу}

{Графиктік режимді іске қосу}

gd:=detect; initgraph(gd,gm,’ ’);

setcolor(5); {координат осьтерін құру}

line(320,0,320,480); line(0,240,640,240);

for x:=k to l do {графикті салу}

begin

y:=a*sqr(x)+b*x+c;

putpixel(320+x,240-round(y),4);

end;

repeat until keypressed;

End.

Мысал 2. Кішкентай шеңбердің экран бойынша жылжыту процессін көрсететін программаны құру керек.

Program esep2;

Uses crt, graph;

Var x,y,gd,gm: integer;

Begin

{графикалық режимді іске қосу}

gd:=detect; initgraph(gd,gm,’’);

{объектін қозғалуын ұйымдастыру}

for x:=0 to 640 do

begin {шеңберді құру}

setcolor(7); y:=x/2;

circle(x, round(y),5);

delay(1000); {тоқтатуды ұйымдастыру}

setcolor(0); circle(x,round(y),5);

end;

repeat until keypressed; End.

Тапсырма 1

Функцияның графигін құру.Графикте координаттар осьі жазылған.Автордың тегі төменгі сол жақ бұрышта орналасу керек,фонның, символдардың түсін енгізу және тағы да басқа процедураларды орындау.

1. y=x^3+a*x^2+b*x.

2. y=a*sinx +b.

 

3. y=-a*x^2+b*x.

4. y=a*x^5 6

5. y=a*cos(x-1)+|x|

6. y=a+b/x+c/x^2

7. y=a-b/x-c/x^2

8. y=1/(a*x^2+a*x+b)

9. y=x/(x^2-b*x+c)

10. x=r*cost, y=r*sint, 0<=t<360

11. x=r1*cost, y=r2*sint, 0<=t<360

12. x=a*(cos(t))^2+b*cos(t), y=a*cos(t)*sin(t)+b*sin(t), a>0, b>0, a>b, 0<=t<360

13. x=(1+cost)*a*cost, y=(1+cost)*a*sint, a>0, 0<=t<360

Тапсырма 2

Кез келген фигураның суретін салыңдар (фигуралар әр түрлі) және оның қозғалысын экранда бейнелеңдер:

Нұсқалар:1, 2, 3 тігінен;

4, 5, 6 көлденеңнен;

7, 8.9 жоғарғы сол жақ диоганаль бойынша;

10, 11, 12 жоғары оң жақ диоганалі бойынша;

1-Тапсырма:

1) Келесі фигураларды салу үшін программаны құру.

1-B. 2-B. 3-B. 4-B.

5-B. 6-B. 7-B.

8-B. 9-B. 10-B.

2) Келесі функцияларының графиктерін салу.

1-B. у = sin(x) 2-B. y = cos(x) 3-B. y = tg(x) 4-B. y = ctg(x) 5-B. y = x3

6-B. y = ax +b 7-B. y = ax2 + b 8-B. y = ln(x) 9-B. y = 3tg(x) 10-B. y = cosxsinx

2-Тапсырма. Кез келген объектінің қозғалуын көрсететін программаны құру.

3-Тапсырма. Экранда мәтін ақпараттың қозғалуын көрсететін программаны құру.





Дата публикования: 2015-11-01; Прочитано: 1677 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.013 с)...