Pascal программалау тіліндегі фрактальді графика

Қазақстан Республикасының Білім және Ғылым Министрлігі

Еуразия Академиясы

 

 

 

“Информатика және есептеу техникасы”

мамандығы деканаты

 

 

 

 

 

 

 

«Алгоритмдеу және программалау тілдері» пәнінен

КУРСТЫҚ ЖҰМЫС

 

 

 

 

Тақырыбы: “ Pascal программалау тіліндегі фрактальді графика”

 

 

 

 

 

 

 

 

                        Орындаған: «Ақпараттық жүйелер»

мамандығының сырттай оқу бөлімінің

ИС711 тобының студенті Салимова Б.А.

Тексерген: аға оқытушы Абдрахманова Д.Ж.

                                        

 

 

 

 

 

 

Орал, 2012

 

Мазмұны

 

Кіріспе....................................................................................................................

 3

1. 1. Паскаль программалау тіліндегі фрактальді графика........................

 5

1. 1 Базалық процедуралар  мен функциялар.......................................................

5

1. 2 Фрактальді графикалық  режимдегі экран мен терезелер...........................

7

1. 3 Фрактальді графикада қарапайым фигураларды шығару...........................

8

1. 4 Графикалық процедуралар………………………………………………….

13

1. 5 Graph модулі………………………………………………………………

17

1. 6 Мәтінмен жұмыс………………………………………………………….....

 

 2. Фрактальді графика мүмкіндіктерін программалауда жүзеге асыру.

24

2. 1 Функцияның графигін тұрғызу……….........................................................

24

2. 2 Графикадағы циклдер. Кездейсоқ процесстердiң құрастыру….................

26

2. 3 Жұлдызды аспан программасы......................................................................

28

Қорытынды...........................................................................................................

30

Қолданылған әдебиеттер....................................................................................

32


 

 

 

Кіріспе

 

Берілген курстық жұмыста Паскаль программалау тілінде түрлі графикалық обьектілерді құру мүмкіндіктері қарастырылған. Graph модулін пайдалана отырып оның түрлі сипаттағы функциялары мен процедуралары программалау кезінде қолданылды. Паскаль программалау тілінде графикалық жұмыстар екі режимде іске асады. Олардың бірі мәтіндік болса, екіншісі графикалық болып табылады. Мәтіндік режимде монитор экраны жолдар мен бағандарға бөлінген, яғни әрбір ұяшығында бір символдан орналасқан торды көрсетеді. Ал бұл кестенің өлшемі таңдалған режимге байланысты болып келетіндігін көрсетеді. Сондықтан да мәтіндік режимдегі графикалық суреттер символдардың үйлесімі арқылы жүзеге асады. Бұндай суреттерді кей жағдайда “псевдографика” деп те атайды.

Мәтіндік режимге қарағанда графикалық режимде монитордың экранында саны өте көп нүктелердің (пиксельдердің) үйлесімін көруге болады. Нүктелердің әртүрлі түстермен үйлесімі арқылы графикалық фигуралар құралады. Нүктелердің көлденең және тігінен орналасуына байланысты, экранның өлшемі бейнеадаптердің таңдалған режиміне сай келеді.

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

Курстық жұмыстың негізгі міндеттері келесі қағидалардан тұрады:

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

Геометриялық обьектілердің орны мен пішіні нүктенің координаталарымен берілетіндігі геометриядан белгілі. Өз кезегінде, графикалық қорытындыны программалау үшін графикалық обьектілердің координаталарын беруді үйрену қажет. Көптеген процедуралар мен функциялар экрандағы қадамын бағыттаушыны қолданады, оның ерекшелігі мәтіндік курсорға қарағанда көрінбейді.Бұл бағыттаушының орны экрандағы кез келген координата секілді сол жақ жоғарғы бұрышқа қатысты координаталарға ие болады. Осылайша экранның тігінен орналасқан координатасы солдан оңға қарай өседі, ал көлденең орналасқан координата жоғарыдан төменге қарай өседі. GetMaxX және GetMaxYфункциялары берілген режимде тігінен және көлденеңі бойынша экран координаталарының максималды мәндерін құрайды. SetViewPort процедурасы графикалық режимде тікбұрышты терезе құрады. ClearDevice процедурасы графикалық экранды тазартады. Осы процедураға жүгінгеннен соң бағдарша сол жақ жоғарғы бұрышқа орнығады, ал экран SetBkColor процедурасы арқылы берілген фонмен толтырылады. PutPixel процедурасы координатасы бойынша берілген нүктенің түсін шығарады. Жазылымы: Procedure PutPixel(X, Y: I eder; Color: word); X, Y – нүктенің координаталары, ал Color – нүктені түсі.

 

 

 

 

1. Паскаль программалау тіліндегі фрактальді графика

1. 1 Базалық процедуралар мен функциялар

 

Паскаль программалау тіліндегі дисплей экраны көп нүктеден құралған тіктөртбұрышты алаңды сипаттайды. Дисплей мәтіндік және графикалық режимдерде жұмыс істейді. Алайда мәтіндік режимге қарағанда графикалық режимде әрбір нүктенің түсін өзгертуге мүмкіндік бар.

Графикалық программалау процесін әсерлі ете түсу үшін Borland International компаниясы арнайы Graph (бұл кітапханалық модуль 79 графикалық процедура, функция, түрлі стандартты константалар мен берілген типтерден құралады) кітапханасын, түрлі монитор типтерімен жұмыс жасауға мүмкіндік беретін драйверлерді теру, графикалық экранға әр түрлі биіктіктегі және пішіндегі мәтіндерді шығару үшін қаріптерді теруді жасап шығарды.

Графиканың аппаратты қолдауы екі негізгі модульмен: видеомонитормен және видеоадаптермен қамтамасыз етіледі. Компьтерде қандай да болмасын адаптер орнатылғанымен, негізгі адаптерге соңғы күйге келтіру автоматты түрде орындалатындықтан Турбо Паскальдің графикалық процедуралары мен функцияларының арқасында сол бір терулерді қолдануға болады. Бұл күйге келтіруді графикалық драйверлер іске асырады.

Графикалық жүйеде қосылу мен жұмысын аяқтау келесі түрде жүзеге асады:

  1. Graph модулін қосу (графикалық процедуралар кітапханасын): normal">uses Graph;
  2. Графикалық режимді орнату:
  • графикалық драйверлер мен мониторды анықтайтын айнымалылары сипаттау:

 var gd, gm: integer;

gd:=Detect;(gm мәні gd:=detect командасынан кейін; автоматты түрде анықталады)

  • графикалық режим инициализацияланады:

InitGraph(gd, gm драйверге жолды нұсқайды, дәлірек болған сайын жақсы)

Осы сәттен бастап қолданушыға барлық графикалық құрылғыларға қолжетімді болады.

3. Графикалық жүйедегі  жұмысты аяқтау: CloseGraph;

Базалық процедуралар мен функциялар.

Экранға суретті тұрғызу үшін координаталар жүйесі қолданылады. Санау координаталары (0,0) болатын экранның сол жақ жоғарғы бұрышынан басталады. Х (баған) мәні солдан оңға қарай өседі, Y (жол) мәні жоғарыдан төмен қарай өседі. Суретті тұрғызу үшін бастапқы нүктені белгілеу керек. Мәтіндік режимде аталған нүктені экрандағы меңзер нұсқайды. Ал графикалық режимде көрінетін меңзер жоқ, бірақ көрінетін CP (Current Pointer) нұсқауы бар. Бұл дәл сол меңзер, алайда ол көрінбейді.

 

Кесте 1.

Graph модулі графиктік функциялар мен процедураларды

Процедура

Формат

Әрекет

SetColor

SetColor(a: word);

Сурет салынатын түсті қояды

SetBkColor

SetBkColor(a: word);

Экран фонының түсін қояды

SetFillStyle

SetFillStyle(a, b: word); 
a –бояу стилі, b - түс

Облысты бояудың түсі мен стилін қояды

SetLineStyle

SetLineStyle(a, b, c: word); 
а –сызық стилі, b- сызықтың салыну үлгісі, с-сызық қалыңдығы

Сызық стилін және қалыңдығын қояды

SetTextStyle

SetTextStyle(a, b, c: word);

Текстің шрифтін, стиль және өлшемін қояды

SetFillPattern

SetFillPattern(Pattern: FillpatternType; Color: word); Pattern - маска

Қолданушы анықтаған толтыру шаблонын таңдайды

ClearDivice

ClearDivice;

Экранды тазалайды және ағымдағы бағыттауышты басына қояды

SetViewPort

SetViewPort(x1, y1, x2, y2: integer, Clip: boolean);

Графиктік шығару үшін ағымдағы терезені қояды

ClearViewPort

ClearViewPort

Терезені тазалайды

PutPixel

PutPixel(a, b, c: integer);

Берілген түске боялған нүкте салады

Line

Line(x1, y1, x2, y2: integer);

(x1, y1) ден (x2,y2) дейін сызық сызады

Rectangle

Rectangle(x1, y1, x2, y2: integer);

(x1, y1) ден (x2, y2) дейін диоганалымен төртбұрыш сызады

Bar

Bar(x1, y1, x2, y2: integer);

Боялған төртбұрыш салады

Bar3D

Bar3D(x1, y1, x2, y2, d: integer; a: boolean);

Үш өлшемді жолақ салады (параллелепипед)

Circle

Circle(x, y, r: word);

(x, y) нүктесінде радиусы r шеңбер салады

Arc

Arc (x, y, a, b, R: integer); 
a, b- градуспен өрнектелген бастапқы және соңғы бұрыштар

Радиусы R шеңбер доғасын салады

Ellipse

Ellipse(x, y, a, b, Rx, Ry: integer);

Эллипсті доға салады

FillEllipse

FillEllipse(x, y, Rx, Ry: integer);                 Rx, Ry – жарты осьтер

Боялған эллипс салады

MoveTo

MoveTo(x, y: integer);

Ағымдағы бағыттауышты жылжытады

MoveRel

MoveRel(x, y: integer);

Берілген қашықтыққа горизонталь және вертикаль бойынша ағымдағы бағытауышты жылжытады

OutText

OutText(text: string);

Ағымдағы бағыттауыштан мәтін шығарады

OutTextxy

OutTextxy(x, y: integer; text: string);

(x, y) - тен мәтін шығарады

Sector

Sector(x, y, a, b, Rx, Ry: integer); 
a, b, - градуспен өрнектелген бастапқы және соңғы бұрыштар

Эллипс секторын салады және толтырады




 

Кесте 2.

Graph модулінің қызметі

GetBkColor

Ағымдағы фондық түсті қайтарады

GetColor

Ағымдағы түсті қайтарады

GetX

Ағымдағы позицияның X координатасын қайтарады

GetY

Ағымдағы позицияның Y координатасын қайтарады

GetPixel

(x, y)нүктесінің түсін қайтарады


 

1. 2 Фрактальді  графикалық режимдегі экран мен  терезелер

 

Анология бойынша графикалық экран мәтіндік режиммен біртұтас үлкен немесе өлшемі жағынан кіші терезе ретінде қарастырылуы мүмкін. Терезені орнатқаннан кейін экранның қалған ауданы бұрын болмағандай және барлық енгізу-шығарулар терезе арқылы іске асады. Әрбір сәтте тек бір ғана терезе жұмыс жасай алады. Егер терезелер саны бірнешеу болса, қажет емес терезеге енгізу-шығаруларды қосып отыруға программисттің жауап береді.

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

Егер терезе құруға тура келсе, SetViewPort (x1, y1, x2, y2 : integer, Clip:boolean) процедурасын қолднаған жөн; мұндағы x1, y1 – сол жақ жоғарғы бұрыштың координаталары, x2, y2 – оң жақ төменгі бұрыштың координаталары. Clip параметрі сурет терезенің сыртына шығып кеткен жағдайда қиылысадыма (Clip:= True) әлде жоқпа (Clip:=False), соны анықтайды. Терезе құрылғаннан кейін координатасы (0, 0) болатын терезенің сол жақ жоғарғы бұрышындағы нүкте санаққа кіріседі.

Толық экранның координаталар жүйесін қайта қалпына келтіруге болады, негізінен ClearDevice немесе процедураға терезенің орындалуын жүктеген кезде максимальді мүмкін мәндерге SetViewPort( 0, 0, GetMaxX, GetMaxY, true) жатады.

Мәтіндік терезеге қарағанда графикалық терезеде SetBkColor фонымен процедураны орнатқан кезде және ClearViewPort көмегімен тазарту нәтижесінде экранның бүкіл фонымен бірге фоны ауысып кететіндігін есте сақтау қажет. Сондықтан графикалық терезенің фонын SetFillStyle немесе SetFillPattern процедураларының көмегімен орнатқан жөн.

 

  1. 3 Фрактальді графикада қарапайым фигураларды шығару

 

Нүктені шығару.

Экранға қандай да болмасын бейнені шығармаса да, олардың барлығы нүктелерден құралған, кез келген бейнені экранның керекті жеріне белгілі бір түстегі нүктелерден тұрғызу арқылы теориялық тұрғыда құруға болады. Graph кітапханасында нүктені шығару келесі процедура арқылы іске асады:

PutPixel (x, y: integer, color:word);

Мұндағы х, у – нүктенің орналасу координаталары; color – түсі.

Color мәнінің мүмкіндіктері кестеде көрсетілген.

Кесте 3.

Түстік шкала

Түс

Код

Түс

Код

Black – қара

0

DarkGray – қоңырқай сұр

8

Blue – көк

1

LightBlue – көгілдір

9

Green – жасыл

2

LghtGreen – ашық жасыл

10

Gyan – бирюзовый

3

LightGyan – ашық-бирюзовый

11

Red – қызыл

4

LightRed – ашық қызыл

12

Magenta – малина түсті

5

LightMagenta – ашық малина түсті

13

Brown – қоңыр

6

Yellow –сары

14

LightGray – ақшыл сұр

7

White – ақ

15


 

Мысалы

PutPixel(320, 240, 4); ü

ý - экранның центріне қызыл нүктені шығарады.

PutPixel(320,240, Red);þ

Сызықты шығару.

Сызықтар (түзулер қимасынан) нүктелерден тұрғызылады. Мұны келесі процедураның көмегімен жүзеге асыруға болады

Line (x1, y1 , x2,y2 :integer);

Мұндағы x1, y1 – сызықтың бастапқы нүктесінің координатасы, x2,y2 – сызықтың соңғы нүктесінің координатасы, Мысалы Line(1,1,600,1);

Line процедурасында түсті белгілеуге арналған параметр жоқ. Бұл жағдайда түс SetColor (түсі: word) процедурасымен орындалады; бұл кестедегі 1 түс болып табылады. Мысал үшін:

SetColor(Gyan);

Line(1,1,600,1);

Сызықты салу үшін тағы да екі процедура қолданылады: LineTo және LineRel. LineTo (x,y: integer) процедурасы берілген нүктені орнынан х, у координаталы нүктеге бағытталған сызықты салады. LineRel (dx,dy: integer) процедурасы берілген (х, у) нүктесіні координатасы x+dx, y+dy нүктесіне бағытталған сызықты жүргізеді.

Турбо Паскаль әр түрлі стильдегі сызықтарды: жіңішке, жуан, штрихталған, пунктирлі және тағы басқаларын сызуға мүмкіндік береді. Стильді орнату SetLineStyle(a,b,c: word) процедурасының көмегімен іске асады, мұнда мәндер 2 кестеде келтірілген жолдың типі, b – үлгісі, с – кесте 3-те көрсетілген тұрақтымен анықталған сызықтың қалыңдығы. Егер стандартты стильдердің бірі қолданылса, b-ның мәні 0-ге тең. Егер өзіндік стильді енгізетін болса, онда b=4 болады. Қолданушы өз қалауымен үлгі арқылы сызықты неден құрау керек екенін анықтайды.

Мысалы:

SetLineStyle(1,0,1);

Line(15,15, 150,130);

немесе

SetLineStyle(UserBitLn,$5555,ThickWidth);

Line(15,15, 150,130);

 

Кесте 4.

Сызықтың стильдері

Тұрақты

Мәні

Сипатталуы

SolidLn

0

Үзіксіз сызық

DottedLn

1

Нүктеден құралған сызық

CenterLn

2

Сызықша мен нүктеден құралған сызық

DashedLn

3

Штрихталған сызық

UserBitLn

4

Қолданушының типі

NormWidth

1

Жай қалыңдығы (1 пиксель)

ThickWidth

3

Қалың сызық (3 пиксель)


Экран центрінде үшбұрышты қызыл сызықпен сызып шығатын программаны құру керек.

 

Program treug;

uses graph; {графических процедуралар кітапхансын қосу}

var gd,gm: integer; {графикалық драйвер мен мониторды анықтайтын айнымалыларды сипаттау}

begin

gd:=detect; {ПК-ның таңдауымен айнымалылардың мәнін сипаттау}

initgraph(gd, gm, ‘ c/bp’); { графикалық режимді инициализациялау }

SetColor(4); {сызықтың түсін беру}

SetLineStyle(1,0,3); {сызықтың стилін беру}

Line(320, 240, 320, 180);

Line(320, 240, 390, 240);

Line(390, 240, 320, 180);

end.

 

Көпбұрыштарды және тіктөртбұрыштарды тұрғызу.

Тікбұрышты фигураларды тұрғызу кезінде бірнеше процедура қолданылады. Олардың алғашқысы – бірөлшемді тіктөртбұрышты сызу: Rectangle (x1, y1 , x2, y2:integer ), мұндағы x1, y1 – тіктөртбұрыштың сол жақ жоғарғы бұрышының координаталары, x2, y2 – тікбұрыштың оң жақ төменгі бұрышының координаталары. Тіктөртбұрыштың іші боялмаған, сондықтан да ол фонның түсімен сәйкес келеді.

Қабылдауға әсерлі тіктөртбұрышты боялған тіктөртбұрышты салатын Bar (x1, y1 , x2, y2:integer) процедурасының көмегімен салуға болады. SetFillStyle көмегімен боялу түсі анықталады. Тағы да бір әсерлі процедура ретінде үшөлшемді боялған тіктөртбұрышты (параллелепипед) шығаратын Bar3D (x1, y1 , x2,y2, d: integer, a:boolean) процедурасы қолданылады. Сонымен қатар SetFillStyle көмегімен орнатылған боялу түсі мен типі анықталады. d параметрі үшөлшемді контур тереңдігін білдіретін пикселдер санын көрсетеді. Көп жағдайда оның мәні тіктөртбұрыштың төрт төбесіне ( d:= (x2 - x1) div 4 ) тең болады. Ал а параметрі тіктөртбұрыштың төбелерін салу керек пе (а:=True) әлде жоқ па (a:=False) соны анықтайды.

Қолдану мысалдары:

1. SetColor(Green);

Rectangle (200, 100, 250,300);

2. SetFillStyle(1,3);

Bar(10,10,50,100);

3. SetFillStyle(1,3);

Bar3D(10,10,50,100,10,True);

Line процедурасының көмегімен көпбұрыштарды әр түрлі тәсілмен салуға болады. Алайда Турбо Паскальда берілген түстегі, стильдегі және қалыңдықтағы сызық арқылы кез келген көпбұрыштарды салуға мүмкіндік беретін DrawPoly прцедурасы бар. Ол DrawPoly( a: word, var PolyPoints) форматымен анықталады. PolyPoints параметрі көпбұрыштағы әрбір қиылысудың координаталарын құрайтын типталмаған параметр болып есептеледі. а параметрі PolyPoints-тағы координата санын береді.

N төбелері бар тұйық фигураны салу үшін DrawPoly N+1 процедурасы кезінде координата беру керек екендігін есте сақтау қажет, ал мұндағы N нөмірлі төбенің координатасы 1-ге тең төбенің координатасымен тең болуы керек.

Мысал ретінде сипаттағанда:

program tr; { Экран центрінде үшбұрышты қызыл сызықпен сызып шығатын программа}

uses crt, graph;

var gd, gm: integer;

pp: array[1..4] of PointType;

xm, ym, xmaxD4, ymaxD4:word;

begin

gd:= detect;

Initgraph(gd, gm, ‘ c/bp’);

xm:=GetmaxX; ym:=GetmaxY;

xmaxD4:=xm div 4;

ymaxD4:= ym div 4;

{төбелердің анықталған координатасы}

pp[1].x := xmaxD4;

pp[1].y := ymaxD4;

pp[2].x := xm - xmaxD4;

pp[2].y := ymaxD4;

pp[3].x := xm div 2;

pp[3].y := ym - ymaxD4;

pp[4] :=pp[1];

SetColor(4); {сызуға арналған түс}

DrawPoly(4,pp); {4 – қиылысу саны +1}

readln;

CloseGraph

end.

 

Жұмыстың нәтижесінде экранның қара фонона қызыл үшбұрыш шығады. Үшбұрыштың ішіндегі фонды FillPoly(a: word, var PolyPoints) процедурасымен өзгертуге болады. Параметрлердің мәні DrawPоly процедурасындағыдай қалады. Қозғалыстары да анологиялық тұрғыда болады, алайда үшбұрыш ішіндегі фон боялады. Оған мысал ретінде экранның сол жақ жоғары бөлігіне жасыл түсті төртбұрышты жұлдызды салуға болады.

 

program g;

uses crt, graph;

const

Star: array[1..18] of integer = (75, 0, 100, 50, 150, 75, 100, 100, 75, 150, 50, 100, 0, 75, 50, 50, 75, 0);

var

gd, gm: integer;

begin

gd:= detect;

initgraph(gd, gm, ‘ c/bp’);

SetFillStyle(1,2);

FillPoly(9,Star); {9 – қиылысу саны + 1}

CloseGraph;

end.

Доға мен шеңберді тұрғызу.

Берілген түстегі шеңберді сызу келесі форматта жүзеге асады:

Cicrle(x, y, r: word), мұндағы х, у – шеңбер центрінің координаталары, r – оның радиусы.

Мысалға келесі программа фрагменті радиусы 50 пикселден тұратын және центріндегі нүкте (450, 100) тең болатын ашық жасыл түсті шеңберді шығару керек:

SetColor(LightGreen);

Circle(450, 100, 50);

Доғаларды Arc(x, y: integer, a, b, R:integer) процедурасының көмегімен сызуға болады, мұндағы a, b - градустағы бастапқы және соңғы бұрыштар, R – радиусы. Бұрыштарды белгілеу үшін полярлы координаталар жүйесі қолданылады.

Сызу үшін қажетті түс SetColor процедурасы арқылы беріледі. a=0 және b=360 жағдайында, толық шеңбер салынады.

Мысалы 0 мен 90° аралығындағы Circle(450, 100, 50) болып шеңбер күйінде сызылған қызыл түсті доғаны салу керек:

SetColor(Red);

Arc(450, 100, 0, 90,50);

Элипстік доғаларды салуда Ellipse (x, y: integer, a, b, Rx, Ry: integer) процедурасы қолданылады, мұндағы х, у – элипс центрі, ал Rx, Ry: горизонтальді и вертикальді осьтер. a=0 және b=360 жағдайында толық элипс салынады. Мысалы толық элипс тұрғызу керек:

SetColor(9);

Ellipse(100, 100, 0, 360, 50,50);

Элипстің ішіндегі фон экран фонымен сәйкес ке леді. Боялған элипсті салу үшін арнайы FillEllipse (x, y: integer, Rx, Ry: integer) процедурасы қолданылады. SetFillStyle (a, b: word) процедурасының көмегімен элипстің боялуы іске асады, мұндағы а- боялу стилі (кесте 4), b – боялатын түс (кесте 1).

Мысалы жасыл түсті сирек нүктелермен толтырылған алқызыл түсті элипсті салу керек, ол үшін төмендегі процедуралар орындалады.

SetFillStyle(WideDotFill, Green); { толтыру стилін орнату}

SetColor(12); {эллипстің сызылу түсі}

FillEllipse(300, 150, 50, 50);

 

Турбо Паскальдағы графикалық мүмкіншіліктерді толық пайдалану үшін uses сипаттау блогына Graph графикалық модулін қосу керек.

Модуль графикалық функциялар мен процедуралардың тізбегін құрайды.

 

  1. 4 Графикалық процедуралар

 

Arc (x,y: integer; St,En,R: word); {доғаны салу, мұндағы x,y – доға центрінің координатасы, R - радиусы, St, En – бастапқы және соңғы бұрышы}.

 

                 

Сурет 1. Доға

 

 

ClearDevice; {экранды тазалау}

Circle (x,y: integer; R: word); {шеңбердің радиусыR

(x,y) центр нүктелері }

CloseGraph; {графиканың жабылуы}

InitGraph (gd,gm: integer; Path: string); { графиканың инициализациясы, мұндағы

gd - графикалық драйвер,

gm - графикалық режим,

Path – файлды .bgi кеңейтілуімен орналастыру жолы}

Line (x1,y1,x2,y2: integer); {координаталары(x1,y1) және (x2,y2) болатын екі нүкте арқылы өтетін сызық сызу}

LineRel (dx,dy: integer); {сызықтарды салу: dx, dy – координатаның курсордың берілген координатасына өсуі}

                     

Сурет 2. LineRel процедурасының сипатталуы

LineTo (x,y: integer); {меңзердің берілген позициясынан және координатасы (x,y) болатын нүкте арқылы өтетін сызықты салу}

Moveto (x,y: integer); {берілген нүктенің координатасы}

OutText (T: string); {берілген нүктеге мәтін шығару}

OutTextXY (x,y: integer; T: string); {координатасы х, у нүктеге мәтін шығару}

Rectangle (x1,y1,x2,y2: integer); {тіктөртбұрышты салу: (x1,y1) және (x2,y2) – қарама-қарсы төбелерінің координатасы}

PutPixel (x,y: integer; c: word); {түсі с болатын (х, у) координаталы нүктені шығарады}

Сурет 3. Дисплей экранының координаталары

 

Графикалық функциялар

GetMaxX – х осі бойынша экранның максивальді өлшемін анықтайды.

GetMaxY - у осі бойынша экранның максивальді өлшемін анықтайды.

GetX - х осі бойынша берілген позицияның координатасы.

GetY - у осі бойынша берілген позицияның координатасы.

Машиналық координаталар

Машиналық координата жүйесінің басы, осьтің бағыттары, сонымен қатар монитордың координаталарының максимальді мәндері суретте көрсетілген.

Pascal программалау тіліндегі фрактальді графика