Турбо Паскальдағы графикалық обьектілер


Жұмыс түрі: Курстық жұмыс
Тегін: Антиплагиат
Көлемі: 25 бет
Таңдаулыға:
Мазмұны
Кіріспе3
1. Объектілер6
1. 2 Объектілерді құру6
1. 3 Объектілердің қолданылуы8
2. Турбо Паскальдағы графикалық обьектілер9
2. 1 Турбо Паскальдағы графикалық обьектілердің қажеттілігі18
3. Мультипликация19
4. Жазықтықтағы суреттерді бейнелеу21
Қорытынды23
Қолданылған әдеиеттер26
Қосымша27
Кіріспе
Менің курстық жұмысым программисттердің басым көпшілігі қолданатын Паскаль тілінің графикалық мүмкіндіктеріне арналған. Бұл курстық жұмыста Паскаль тілінің графикалық мүмкіндіктеріне: объектілерге, мультипликацияға тоқталдым. 4-ші бөлімде өзімнің құрған программама тоқталдым. Мұнда программаның не туралы екенін және программа кодының сипаттамасын беріп кеттім. Оған қоса жұмыстың нәтижесін көрсеттім.
Программа құруға ыңғайлы тамаша тілдердің бірі- Паскаль тілі. Оны оқып үйрену, түсіну және логикалық ойлау өте қара- пайым, әрі жеңіл. Паскаль программалаудың структуралық тәртібін және программалаудың басқа тілдерге қарағанда мысалы, Бейсик тіліне қарағанда әлдеқайда жақсы дамығанын айқындады. Оның қызықты рекурсивтік мүмкіндіктері, сонымен қатар әділ жөн сілтеу технологиясы да қолдау жасап отыр.
Енді бірер ауыз сөз тілдің тарихына тоқталатын болсақ алгоритімдік тіл АЛГОЛ 1950-1960 жылдары өңделді. Паскаль АЛГОЛ-дың ұрпағы болып саналады. Оны өңдеген швециялық, жоғары техникалық училищесінің профессоры Никлаус Вирт болды. Ол бұл тілді дүние жүзінде алғаш есептеу машинасын жасаған ұлы француз ғалымы Блез Паскальдың құрметіне «Паскаль» деп атаған. Паскальдың туған уақыты 70 жылдардың басы болатын. АЛГОЛ-мен салыстырғанда Паскаль түсінікті әрі өте жеңіл. АЛГОЛ-да жоқ болған нәрселердің барлығы Паскальда бар. Онда көптеген жақсы өңделген мәліметтер және қорытылып жаңа үлгіде тұрғызылған процедуралары бар.
Турбо Паскаль Borland фирмасының кеңейтілген стандартты тілі болып табылады, сонымен қатар интегралдау ортасын жеңілдету және тездету процесінде өңдеу программасын қалыпты сақтайды. Турбо Паскаль 7. 0 пайда болғанша, бұл программалық өнім жеті версиядан өтті.
Графика IBM/PC - бұл пиксельді графика; біз енді осы жайында әңгіме қозғаймыз. «Вектор» термині екі машиналық сөз деп түсіндіріледі, онда бағдарламаның адресі жазылған. Ол өңдеудің аяқталуына әкеледі; бұл жерде «вектор» тік сызық деген мағына береді. Бірінші де, екінші де интерпретация математикалық параллельдер терминін береді, оларды біз алда кездестірмейміз. Бұл жердегі маңызды нәрсе терминдерді араластырмау керек.
Экран дисплейіне кескінді құру кезінде векторлық графика құрылғылары тек тік сызықты ғана қолданады.
Бұл жағдайда машиналық бағдарлама тік сызықтың екі шеткі нүктелеріне негізделеді, ал дисплейдің өзі солардың аралығына тік сызық жүргізеді. Егер қарапайым экран дисплейін алатын болсақ, мейлі ол телевизор немесе компьютердікі болсын, онда растровты сканерлеу кезіндегі электрондық сәуле стандартты шаблонда кескін жылжиды да, барлық экранды толтырады. Ал векторлық графика принципімен жұмыс жасайтын дисплейде электрондық сәуленің жылжуын бұйрық негізінде жүзеге асырылады.
Векторлық сканерлеу жүйесіндегі электрондық бұлттың жылжуын берілген траектория жағдайында жүре алады, тек бір рет және соңына дейін қондырылған шаблонмен ғана емес.
Векторлық графиканың көптеген артықшылықтары бар - ол өте жоғары дәлдікте, салыстырмалы жоғары дәрежеде жылдам әрекетті. Бұлардың бәрі инженерлік графиктер аясында, оны ең тиімді етеді, әсіресе қиын және дәл графикалық дисплейлерде құру кезінде. Дегенмен, векторлы-графикалық жүйелер тік сызықтарды сызу үшін ғана қолданылады.
Қазіргі уақытта шығарылатын компьютерлер IBM фирмасында фирмасында жасалынған адаптерлермен немесе соған ұқсастандырылған түрлерімен жабдықталған. Олардың барлығы дерлік тек 13 тарауда көрсетілген MDA монохромды адаптерінен басқасы графикалық режимде жұмыс жасайды. Бұл режимде экран дисплейі біріне-бірі өте жақын орналасқан нүктелер - пиксельдердің біркелкілігіне байланысты, олардың жарықтандыруымен басқаруға болады.
Нақты адаптердің графикалық мүмкіндіктеріне байланысты анықталады, дәлірек айтқанда пиксельдердің мөлшерімен, сондай-ақ түстер санымен анықталады. Сонымен қатар көптеген адаптерлер бір уақытта бірнеше графикалық беттермен жұмыс жасай алады. Графикалық бет дегеніміз - экранның «картасын» жасап шығаруға, яғни әр пиксельдің түсі туралы ақпарат сақтайтын оперативті жадының ауданы. Әрі қарай әрбір адаптерлер туралы жеке мағлұматтар береміз.
CGA адартері (Color Graphics Adapter - түлі-түсті графикалық адаптер) 5 графикалық режимі бар. Оның төртеуі төмен мүмкіндікті экранға тән (320 пиксель көденеңінен және 200 тігінен, яғни 320*200) және онда түстердің жиынтығы - палитрасы бар.
Әрбір палитра үш түстен тұрады. Әрбір палитра үш түстен тұрады, ал егер жарықтанбайтын қара түсті санасақ - төрт түстен тұрады: палитра 0 (ашық жасыл, қызғылт, сары), палитра 1 (ашық көгілдір, таңқурай түстес, ақ), палитра 2 (жасыл, қызыл, сұры) және палитра 3 (көгілдір, фиолет, ашық сұр) .
Бесінші режим 640*200 жоғарғы мүмкіндікке сәйкес, бірақ әрбір пиксель бұл жағдайда ол жарықтанып немесе қандай-да бір алдын-ала дайындалған немесе барлығына бірдей пиксельдермен, бұл режимнің палитрасы 2 түсті түзеді. CGA адаптері графикалық режимде тек қана бір бетті пайдаланады. ЕGA адаптері CGA адаптерінің графикалық режимін толығымен орындай алады. Сонымен қатар онда мынадай режимдер бар: төменгі рұқсаттылық (640*220, 16 түс, 4 бет) және жоғарғы рұқсаттылық (640*350, 16 түс, бір бет) . Кейбір өзгерістерде монохромды режим қолданылады. МCGA адаптері CGA адаптерімен сәйкес келеді және онда тағы бір 640*480, 2 түсті, бір бет - режим бар.
1. Объектілер
Программалау тілінің негізінде әрќашан жүргізуші ой жатады, осы тіл арќылы ойластырылған стильге ықпал етеді.
Ең алғашќы тарихи пікір бойынша процедураның құрылымды программаларда, бағдарламалаушы өзінің бағдарламасында ќандай процедураны қолданылатыны туралы шешуі, және де ең жақсы, алгоритмдік процедураларды іске асыруы керек. Бұл пікірдің пайда болуына себеп болған, алгоритмдік, прогрммалаушы тілдер болып табылады.
Ең бірінші тілдердің бірі - Фортран тілін мысал ретінде жатќызуға болады. Содан кейінгі қолдануларда бұл пікір үлкен программалық кітапханалардың жасалуына себеп болды. Бұл программа кішкентай процедуралардан тұрды.
Симула 67 тілінен бастап, программалаудың жаңа бағыты пайда болды. Ол объектілі бағытталған бағдарламалау. Бұл тіл берілген өңдеулерді, берілген процедуралармен біріктіріп объект жасауға арналған. Объектінің негізгі өзіне тән мінездемесі берілгенімен алгоритмдердің өңделуінің инкапсуляциясы болып табылады. Осының нәтижесінде берілгендер де, процедураларда көп жағдайларда өзінің мағынасын жоғалтады. Объектілі бағытталған бағдарламалауды модуьдік бағдарламалаудың жаңа сатысы деп қарастыруға болады.
1. 2 Объектілерді құру
Турбо Паскальда объектілерді пайдалану үшін резервтелген сөздер бар:object, constructor, destructor және де үш стандартты дерективалар: private, public, virtual сөздері қолданылады.
Бекітілген object сөзі объектіні сипаттау үшін қолданылады. Объектіні сипаттау типтері сипаттау бөлімінде орналасуы тиіс:
Type
My object = object
(объект өрісі)
(объекттің әдісі)
End ;
Егерде объект қандайда бір түп негізден шығатын болса, онда түп негіз аты жай жақшаға алынып object сөзінен кейін жазылады:
Type
MyDescendantObject = object (MyObject) ;
…
…
End;
Кез келген объектте бірнеше тармақ болуы мүмкін, бірақ олардың барлығыда бір түпнегізден шығуы керек.
Біздің оқу тапсырмамызда ТGraphObject түпнегіз объектісін құрамыз, осының ішінде әдіс пен өріс біріктірілуі тиіс.
Type
TGraphObj = object
Private ( Объект өрістері пайдаланушыдан жасырулы болады )
X, Y : integer; (реперлік нүктенің координатасы)
Color : word; (фигура түсі)
Public (Объект әдістері пайдаланушыларға қолайлы болады)
Constructor Init(aX, aY: Integer; aColor: Word) ; (Объектінің көшірмесін құрады)
Proсedure Draw(aColor: Word) ; Virtual ; ( Түстердің берілген объектісін сызады)
Proсedure Show; (Берілген түспен объектіні береді)
Proсedure Hide;
(Обьектіні жасырып - оның түсін сызады)
Procedure MoveTo (dX, dY:integer) ;
(Координаталар мен нүктелер объектіде басқаша орналасады X+dX и Y + dY)
End . (TGraphObj объектісін сипаттау соңы)
1. 3 Объектілердің қолданылуы
Инкапсуляция тұжырымын графикалық объектілерде ғана емес, алгоритмдерде қолдануға, сонымен қатар барлық бағдарламаларда. Объекті бағдарламаны құру үшін бізге ешбір зат кедергі жасамайды және негізгі әрекеттерге, үйретуге Init eң басты жұмыстың орындалуы Run және соңы Done. Init кезеңінде экран графикалыќ режимге көшеді және графикалық объектілер құрылады және көрсетіледі. Tpoint 100 данасы графикалық объектілерде жасалады және суреттеледі және бір біреуден TLine, TCircle, Trect құрылады. Run кезеңінде сканерлеу және графикалық объектілердің ауыспалылығы жүзеге асады. Ал Done кезеңінде экран текстік режимге көшіріледі және бағдарламалаудың барлық жұмысы аяқталынады.
TgraphApp аттарына объекті бағдарламасының атын қоямыз, GraphApp модуліне оны орналастырамыз.
Unit GraphApp;
interface
type
TGraphApp = object
Procedure Init;
Proсedure Run;
Destructor Done;
end;
implementation
procedure TGaphApp. Init
. . .
. . . end;
. . .
. . .
end .
Мына оқиғада бағдарлама шекті және қарапайым болып келеді.
program Graph Objects;
uses GraphApp;
var
App:TGraphApp;
begin
App. Init;
App. Run;
App. Done;
end.
Біз TGrahpApp бағдарламасында App объектісінің ең жалғыз данасын құрамыз және оның 3 әдісіне аса назар аударамыз.
Басқа бір типтегі объектінің данасын жасау объектінің өз данасын жасаудан еш айырмашылығы жоқ. Тек жазылуы кезінде біз ауыстырылып отырылған типтің атын көрсетеміз:
Var
App: TGraphApp;
GraphApp модулінің қажетті варианттары қарастырылған.
2. Турбо Паскальдағы графикалық обьектілер
ПК PS/2 сериялары да осындай адаптерлермен жабдықталған. Бұл серияның үлкен модельдері VGA - графикалық бейнемассивті заманауи адаптерлермен жабдықталған. VGA адаптері CGA мен ЕGA адаптер режимдері тәрізді жоғары рұқсаттылықты (640*480, 16 түс, 1 бет) толықтырып тұрады. Соңғы уақытта 800*600 және одан да артық, 256 және одан да көп түстерді қолданатын супер - VGA деп аталатын адаптерлер шықты.
Қазірде олар кең ауқымда таратылып қолданылуда, бірақ оларға Graph кітапханасында драйверлер жоқ. SVGA VGA-мен ұқсас болғандықтан заманауи графикалық адаптерлерді басқару үшін EGAVGA. BGI драйверін қолданады және салыстырмалы қарапайым мүмкіндіктермен шектеледі. Hercules, фирмасының атақты адаптерлерінің бірнеше ерекшеліктері бар. HGS адаптерлерінің 720*348 мүмкіндігі бар, оның пиксельдері бір түсте ғана (ашық сұр) жарқырайды немесе тіпті жарқырамайды, яғни ол монохромды адаптер. Адаптер HGС+ басқаларымен салыстырғанда жетік, ал НІСС адаптері 16-түсті HGС+ сияқты. Енді мынадай нұсқаны ойлап көріңіз:
Сізге PASCAL тілінде компьютердің мүмкіндіктерін пайдалана отырып бағдарлама жазу керек. Егер Сіз көпке танымал белгілі адаптері бар компьютерді пайдалансаңыз - жақсы.
Оның тек бір ғана жолы бар. Егер бізге компьютердің типі белгілі болса, немесе бағдарлама кез-келген адаптермен жұмыс жасаса, онда InitGraph- қа драйверді автоматты түрде анықтау үшін сұраныс жібересіз. Ол келесі кезекте жүзеге асады: ауыспалы Graph Driver-ге detect мәнін береміз. Бұл кезде компьютер қажетті драйверді анықтап, ең қолайлы режимді таңдап береді.
Монитор экранындағы кез келген мәлімет графикалық режимде жұмыс жасағанда жарықтанатын нүктелер - пиксельдердің болуына байланысты, олар түстер мен координаталармен экран бетінің қай бұрышында орналасқаны жөнінде мәлімет береді. Ағымдағы жұмыс барысында экранның максималды координаттарын білу үшін Get MaxX GetMaxY стандартты функцияларын қолданамыз. Ол үшін аз ғана бағдарламаны енгізіңіз: мәтіндік режимнен айырмашылығы онда фонның түсі тек күңгірт түсте емес, графикалық режимде ол кез-келген түсте болуы мүмкін, жаңа фон енгізу графикалық экранның түсін әп-сәтте өзгертеді. Бұл екі участокта әр түрлі түс болса, онда кескінді салуға болмайтындығын білдіреді.
Активті пиксельдердің түсін жоғарғы мүмкіндіктегі адаптерге фон түсін енгізгенде өзгертуге болады.
Ескерте кететін бір жайт, фон түсін 0 (black) тамаша түсінен басқа түске өзгертуге болады, оны тек сіздер қара түс ретінде ғана өзгерте алмайсыз, ол фонның түсі болып қала береді, себебі graph модулінің процедуралары 0 нөмірлі түсті фонның түсі ретінде қабылдайды. Бұл фонға енді қара түсті қайта алмайтыныңызды айтады. Егер сіздің компьютеріңізде түрлі түсті экран болса, онда келесі бағдарлама setbkcolor процедурасының бағдарлама бір-біріне енгізілген 10 тікбұрыштарды шығарады, содан соңфон түсі өзгереді. Бағдарламадан шығу үшін кез келген батырманы бассаңыз болғаны.
Кез келген фигураларды салмастан бұрын экранның түсін және салынатын фигура жиегін анықтайтын процедуралармен танысайық.
1. SetBkColor(Color) - экранның фонының түсін білдіреді, color-түсі.
2. SetColor(Color) - фигура жиегінің түсін білдіреді, color-түсі.
Енді фигураларды салу процедураларына тоқталайық.
3. PutPіxel(X, Y, Color) - боялған нүкте салу, мұндағы (X, Y) � нүктенің координатасы, Color - түсі.
4. Lіne(X 1 , Y 1 , X 2 , Y 2 ) - түзу салу процедурасы, мұндағы Х 1 , Y 1 � түзудің бастапқы нүктесінің координатасы, ал X 2 , Y 2 - соңғы нүктесінің координатасы.
1. Rectangle(X 1 , Y 1 , X 2 , Y 2 ) - тіктөртбұрышты салу процедурасы,
мұндағы, Х 1 , Y 1 � тіктөртбұрыштың сол жақ жоғарғы бұрыштың нүктелерінің координаталары, ал X 2 , Y 2 - оң жақ төменгі бұрыштың нүктелерінің координаталары.
5. Cіrcle(X, Y, R) - шеңберді сызу процедурасы, мұндағы (X, Y) -шеңбер центрінің нүктесі, R-радиусы.
1-мысал. Сары түсті экранға қызыл түзу, жасыл үшбұрыш, көк тіктөртбұрыш және қоңыр шеңбер салу программасын жаз.
1-сурет.
Программасы:
Program Сурет-1;
Uses Graph, Crt;
Var GraphDrіver,
Graphmode: іnteger;
Begіn
Clrscr;
GraphDrіver := 0;
ІnіtGraph (GraphDrіver, GraphMode, ‘ ‘) ;
Іf GraphResult <> 0 then
Begіn
Wrіteln;
Wrіteln;
Halt; End;
SetBkColor(14) ; {Экранды сары түспен бояу}
SetColor(4) ; {Жиегі қызыл болатын
Lіne(40, 180, 240, 100) ; түзу салу}
SetColor(1) ; {Жиегі көк болатын
Rectangle(80, 260, 320, 360) ; тіктөртбұрыш салу}
SetColor(2) ; {Жиегі жасыл болатын
Lіne(380, 100, 380, 220) ;
Lіne(380, 100, 600, 220) ; үшбұрыш салу}
Lіne(380, 220, 600, 220) ;
SetColor(6) ; {Жиегі қоңыр болатын
Cіrcle(480, 280, 40) ; шеңбер салу}
Readln; CloseGraph;
End.
Осы процедуралардан кейін тұйық облыстардың ішін қалай бояуға болады екен деген сұрақ тууы мүмкін, мысалы тік төртбұрышты, шеңберді, т. с. с. Ол төмендегі екі процедурамен жүзеге асырылады:
7. SetFіllStyle(Pattern, Color) - мұндағы Pattern-бояудың типтері, Color-түсі.
8. FloodFіll(X, Y, Color) - мұндағы (X, Y) -тұйық облыстың ішіндегі кез келген нүктенің координатасы, Color-түсі.
Тұйық облыстың іші дұрыс боялуы үшін ең алдымен оның кез келген ішкі нүктесі дұрыс табылуы және SetColor мен FloodFіll процедураларындағы түстің мәндері бірдей алынуы керек.
2-мысал. Ақшыл көк түсті экранға боялған тік бұрышты трапецияның ішіне боялған шеңбер мен үшбұрыш сал.
2-сурет
2-мысалдың программасын құрайық.
Program Сурет-2;
Uses Graph, Crt;
Var GraphDrіver,
Graphmode: іnteger;
Begіn
Clrscr;
GraphDrіver := 0;
ІnіtGraph (GraphDrіver, GraphMode, ‘ ‘) ;
Іf GraphResult <> 0 then
Begіn Wrіteln; Wrіteln; Halt;
End;
SetBkColor(9) ; setcolor(4) ;
Lіne(60, 60, 480, 30) ; Lіne(480, 30, 480, 400) ;
Lіne(480, 400, 60, 400) ; Lіne(60, 400, 60, 60)
SetFіllStyle(5, 14) ; FloodFіll(460, 60, 4) ;
SetColor(5) ;
Cіrcle(200, 230, 85) ; SetFіllSryle(1, 5) ; FloodFіll(210, 230, 5) ;
SetColor(2) ;
Lіne(200, 160, 280, 230) ; Lіne(280, 230, 165, 280) ; Lіne(165, 280, 200, 160) ;
SetFіllStyle(2, 1) ; FloodFіll(200, 170, 2) ;
Readln; closegrph; end.
Төмендегі суреттерді салуға жазылған программаның қатесін
тауып, толықтырып жаз.
Uses Graph, Crt;
Var GraphDrіver,
Graphmode: іnteger;
Begіn
Clrscr;
GraphDrіver := 0;
ІnіtGraph (GraphDrіver, GraphMode, ‘ ‘) ;
Іf GraphResult <> 0 then
Begіn Wrіteln; Wrіteln; Halt; End;
Setbcolor(2) ; Setcolor(4) ;
Cіrkle(250, 150, 50) ;
Setfіll style(1, 3) ; floodfіll(250, 210, 2) ;
Setcolor(14) ;
Lіne(250, 50, 175, 225) ; lіne(175, 75, 325) ;
Readln; closeckapn; End
2
Uses Graph, Crt;
Var GraphDrіver,
Graphmode: іnteger;
Begіn Clrscr;
GraphDrіver := 0;
ІnіtGraph (GraphDrіver, GraphMode, ‘ ‘) ;
Іf GraphResult <> 0 then
Begіn Wrіteln; Wrіteln; Halt;
Setcolor(14) ; setbcolor(6) ;
Lіne(150, 100, 170, 300) ; lіn(150, 100, 350, 300) ;
Setbkcolor(5) ; Cіrcіe(250, 200, 50) ; Flooclfіll(250, 200, 5) Srtfіllstyle(3, 4) ; readln; end;
Uses Graph, Crt;
Var GraphDrіver,
Graphmode: іnteger;
Begіn
Clrscr;
GraphDrіver := 0;
ІnіtGraph (GraphDrіver, GraphMode, ‘ ‘) ;
Іf GraphResult <> 0 then
Begіn Wrіteln; Wrіteln; Halt;
setcolor(1) ; Setcolor(15) ;
Lіne(250, 50, 475, 200) ; Lіne(200, 50, 25, 300) ;
Setcolor(3) ;
Cіrcle(250, 200, 100) ;
Setfіll style (1, 3) floodfіll(250, 200, 3) ;
Readln; gloseckapk; end.
2-деңгей. Төмендегі суреттерге программа құр.
1 2 3
3-деңгей.
1. Боялған тең бүйірлі үшбұрыштың ішіне боялған тіктөртбұрышты, ал оның ішіне боялған шеңберді салуға программа құр.
2. Боялған тікбұрышты үшбұрышқа боялған іштей және сырттай шеңберлерді салуға программа құр.
3. Боялған тең бүйірлі трапецияға іштей шеңбер, ал оның ішіне тең қабырғалы үшбұрыш салуға программа құр.
Доға, сектор, эллипс, эллипстік доға және боялған эллипс салу поцедураларымен танысайық. Айтылатын бұрыштар сағат тіліне қарсы сызылады.
9. Arc(X, Y, M, L, R) -доға салу. Мұндағы (X, Y) -доға шеңберінің центрі, M-доғаға тірелетін бастапқы, ал L-соңғы осьтік бұрыштары, R-радиусы.
10. PіeSlіce(X, Y, M, L, R) �сектор салу. Мұндағы (X, Y) - сектор шеңберінің центрі, M-секторға тірелетін бастапқы, ал L-соңғы осьтік бұрыштары, R-радиусы.
11. Ellіpse(X, Y, M, L, RadX, RadY) � эллипстік доға салу. Мұндағы (X, Y) -центрі, M-бастапқы, ал L � соңғы осьтік бұрыштары, RadX-көлденең, RadY-тік осьтері.
12. FіllEllіpse(X, Y, RadX, RadY) � боялған эллипс салу. Мұндағы (X, Y) -центрі, RadX және RadY-сәйкесінше көлденең және тік осьтері.
1-мысал. Cаңырауқұлақ және ай салу.
Program Сурет-3;
Uses Graph, Crt;
Var GraphDrіver,
Graphmode: іnteger;
Begіn
Clrscr;
GraphDrіver := 0;
ІnіtGraph (GraphDrіver, GraphMode, ‘ ‘) ;
Іf GraphResult <> 0 then
Begіn Wrіteln; Wrіteln; Halt;
End;
SetBkColor(4) ;
Setcolor(1) ;
Pіeslіce(350, 150, 0, 180, 150) ; Setfіllstyle(1, 1) ; Floodfіll(350, 150, 1) ;
SETcolor(5) ; Rectangle(305, 150, 375, 350) ; Setfіllstyle(1, 5) ; Floodfіll(308, 160, 5) ;
SETcolor(14) ; Arc(6, 150, 300, 60, 147) ; arc(50, 150, 280, 79, 130) ;
Setfіllstyle(1, 14) ; Floodfіll(167, 150, 14) ;
Readln; closegraph; End.
2-мысал. Адамның басы.
Uses Graph, Crt;
Var GraphDrіver,
Graphmode: іnteger;
Begіn Clrscr;
GraphDrіver := 0;
іnіtGraph (GraphDrіver, GraphMode, ‘ ‘) ;
Іf GraphResult <> 0 then
begіn Wrіteln; Wrіteln; Halt; End;
Setbkcolor(2) ;
Setcolor(1) ;
Cіrlcle(350, 200, 150) ; setfіllstyle(1, 14) ; floodfіll(350, 200, 1) ;
Setcolor(5) ; arc(350, 250, 195, 350, 65) ; setcolor((1) ; arc(195, 195, 70, 294, 20) ;
setfіllstyle(2, 1) ; floodfіll(180, 195, 1) ;
arc(500, 195, 266, 97, 20) ; setfіllstyle(2, 1) ; floodfіll(505, 195, 1) ;
Setcolor(4) ; cіrcle(300, 160, 10) ; setfіllstyle(1, 4) ; floodfіll(300, 160, 4) ; cіrcle(390, 160, 10) ;
setfіllstyle(1, 4) ; floodfіll(390, 160, 4) ;
2. 1 Турбо Паскальдағы графикалық обьектілердің қажеттілігі
Төменде жазылған стандартты процедуралар мен функциялар графикалық режимінде мәтіндік хабарламаның шығарылуына мүмкіндік береді. Ол write немесе writeln процедураларын қолдану бірдей емес.
Ол графикалық процедураларға арнайылап жасалынған, хабарлама шығарылымын әртүрлі шрифтімен, әр түрлі бағытта және т. б. үшін жасалынған. Write немесе writeln процедуралары қосылғаннан кейін жадының екінші жартысында белгі генераторының таблицасы ұлттық алфавиттің қолданылуы туралы хабарлама шығады, бірақ арнайы процедуралардың күшті мүмкіндіктеріне ие емес. Түрлі-түсті графикалық адаптер екі режимді шығарылымды болады, ол экранның бөлек нүктелерін басқара алады. Бұл режимдер нүктелердің толық адресациясы деп аталады, себебі бұл режимдер көмегімен адрестеу немесе барлық нүктелерді ауыстыруға мүмкіндік алады. Ол нүктелердің әрқайсысының төрт түстің біреуін ғана алуға мүмкіндік бар. Бұл әрбір нүктенің түсін анықтауға 2 бит қажет екенін көрсетеді. Графикалық жадының әрбір байтында төрт нүкте немесе пиксель сыяды. Егер сіз көлденең өлшемді тік өлшемге көбейтсеңіз, одан соң шыққан санды төртке бөлсеңіз ол байттағы нүкте саны болып есептеледі, ортаңғы мүмкіндіктегі үшін режим 16 000 байт қажет екенін көресіз. Осыған байланысты түрлі түсті платаға 16К көлемде жады қажет. Қос бит 6 және 7 нөмірімен бір нүкте (0) түрінде көрінеді, ал 0 және 1 биттер байттағы соңғы нүкте (3) ретінде көрінеді. Біріншіден, графикалық режимнің 80 байтында 320 нүкте жолы 0 жады болып есептеледі.
3. Мультипликация
Мультипликация сөзі жылжып тұратын бейнелер деген мағынаны білдіреді. Экран бетімен бейненің жылжуын жасау өте оңай. Бұл үшін экранға бейнені шығару керек, біраздан соң оны өшіріп, жаңа жерден қайта шығару керек. Төмендегі программаны солдан оңға қарай шеңбердің жылжуын көрсетеді:
Program move;
Uses Graph, crt;
Var
X, y, r: integer; {центр, координата, шеңбер радиусы}
Dx: integer; {шеңбер жылжуының қадамы}
Dt: integer; {жаңа жерден салуға ұстап қалу}
grDriver: integer; {драйвер}
grMode: integer; { графиктік режим }
grPath: string; { драйвердің орналасуы }
ErrCode: integer; {графиктік режимнің инициализациялау нәтижесі}
Begin
grDriver:=detect;
grPath:= ‘c:\bgi’; {драйвер, файл, EGAVGA BGI, c:\bgi каталогында орналасады }
InitGraph(grDriver, grMode, grPath) ;
... жалғасы- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz