Паскальдағы графикалық режим

Автор работы: Пользователь скрыл имя, 04 Ноября 2011 в 14:24, курсовая работа

Описание

Паскаль тілін 1968-1971 жылдары швейцариялық ғалым Никлаус Вирт оқып үйренуге қолайлы программалау тілі ретінде ұсынған болатын. Бұл тілдің стандарты кейінірек бекітілді,ол сол кездерде кең таралған АЛГОЛ, ФОРТРАН, БЕЙСИК тілдеріне қарағанда жетілдірілген, жұмыс істеуге ыңғайлы тіл болды. Паскаль тілі өзінің қарапайымдылығының және тйімділігінің арқасында дүние жүзіне тез таралды. Қазіргі кезде барлық дербес компьютерлер осы тілде жұмыс істей алады.Паскаль тілінде жазылған программаның дұрыстығын компьютерде тексеру және жіберілген қатені тексеру оңай.

Содержание

КІРІСПЕ...........................................................................................................1
НЕГІЗГІ БӨЛІМ..............................................................................................2
Графикалық режімге көшу адаптерлері.............................................3
CRT модуліндегі адаптерлердің мәтіндік мүмкіндіктері.................4
Графикалық процедуралар мен функциялар.....................................5
Grapgмодулінің процедуралары мен функциялапы..........................6
Геометриялық объектілерді құру процедуралары.............................7
Графикалық режімде мәтін жазу процедуралары..............................10
ҚОРТЫНДЫ....................................................................................................14
Пайдаланған әдебиеттер............................................

Работа состоит из  1 файл

дидара.doc

— 114.50 Кб (Скачать документ)

Біз бұл  оқулықта CRT жәнеGRAPH кітапханаларындағы процедураларды пайдаланамыз. Компьютер экраны  әдетте символдық режімде болады. GRAPH модулінде орналасқан кітапханадағы процедуралар мен функцияларды пайдалану үшін программа элементтерін сипаттау бөлігінде

                                           USES GRAPH;

 Түйінді  сөзін пайдалану керек . график сызуда CRT кітапханасындағы процедураларды пайдалану қажет бола онда

                                           USES GRAPH CRT;

 жолы  қолданылады.

Жалпы дисплей адаптерлері рафикалқ режімде 200, 350 тіпті 600 нүктеден тұретын экран жолдарының әрқайсында 640, 720, 800 нүкте тізбегін бейнелей алады. Мұндағы нүкте деп отырғанымыз - өлшемі 0,8х1 квадрат милиметр болып келген кішкентай төртбұрыш, яғни пиксель. Әр бір нүктенің  координаталары екі бүтін санмен (Х,Ү) анықталады. Дисплей экранына грфик салу үшін оның нүктелерінің координаталарын көрсету қажет. Координаталар басы (0,0) болып экранның сол жақ жоғарғы бұрышы есптеледі. Х координаталары солдан оңға қарай , ал Ү мәндері жоғарыдан төмен қарай өсіп отырады. Мысалы EGH адаптерлерінң EGAHI режімінде экран бұрыштарының координаталарын Х= 0..63,Y= 0..199 арлығында көрсету қажет. Экранда Х осі содан оңға қарай Ү осі жоғарыдан төмен қарай бағытталған. Мәтіндік режімнен графикалық режімге көшкенде экран тазартылаы.  Графикалық режімде экраннан курсор көрінбейді. Дисплей экранның бетіне нүкте , түзу немесе қисық сызық, шеңбер, эллипс және кез келген тұйық сызық сззып шығуға болады. Сонымен қатар тұиық сызықтардың ішін әртүрлі түспен бойяп қоюға болады. Сызықтарды жылжыту , айналдыру және басқа басқа орынға көшіру арқылы көрнекі бейнелермен мультфилмдер жасауға болады. График тұрғыза үшін оны шығару немесе бастау нүктесін көрсету қажет. Мәтіндік режімде ол курсор позициясы болып саналады ал графикалық режімде көрініп тұратын курсор жоқ, бірақ экранда көрінбейтін курсор тәрізді сілтеме белгі СР бар. Негізінде оны да курсор деп қабылдауға болады.

Графикалық  режімде жұмыстарды атқаратын Турбо  Паскальдің 7.0 нұсқасында графикалық процедуралар мен функциялар өте көп, енді біз солардың негізгілеріне тоқталып өтеміз. 

     GRAPH модулінің процедуралары мен функциялары. Графикалық режімді іске қосу.

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

 

GRAPH модулі іске қосылысымен оның ішіндегі процедуралар мен функцияларды пайдалана беруге болады.

Графикалық  режімді алғаш рет іске қосу (инициализациялау) үшін Initgraph процедурасы қолданылады, оның жазылуы:

Init Graph( Driver var, Mode Var: integer, Gol:string);

  Мұндағы Driver Var, ModeVar деп атлатын бүтін типтегі екі айнымалы драйверді және жұмыс режімін анықтайды. Мысалы:

      DriverVar:= VGA; DriverVar:=VGAL0;

Алғашқы параметр тұрақты түрінде немесе нөмірімен де беріле береді (ол драйвер  атауы жанындағы жақша ішінде көрсетілген), мысалы төмендегі оепраторлар  бірдей болып саналады:

   DriverVar:=VGA; DriverVar:=9;

Егер  дисплей типін көрсеткіміз келмесе  немсе оны білмесек , стандартты Detect тұрақтысын қолданамыз. Сонда InitGraph процедурасы көмегімен драйвер автоматты түрде таңдап алынады да оның тиімді режімі де өзіне-өзі орнатылады. Процедураның Gol деп аталған үшінші параметрі Graph модулінің маршурутын яғни жолын көрсетеді. Егер ол Модуль ағымдағы католгта немесе бумада болса , онда оның орнына екі апостроф қойылады. Сонымен осы айтқандарымызды программаның бас жағына мынадай жолдар арқылы жаза аламыз

Uses crt, graph;

Var drivervar,modevar: integer;

Begin

Drivervar:= detect;

Initgraph( drivervar, modevar,’\ TP\Graph’);

Мұндағы drivervar –графикалық адаптерінің типі;

ModeVar-оның жұмыс режімі’\TP\ GRAPH’ – графикалық адаптердің орналасқан орны, яғни жазылған бумасы егер ол ағымдағы каталог немесе бума болса онда тек ‘’белгілері ғана жазылады. Адаптерді автоматты түрде таңдап алу үшінDriverVar:= Detect ;деп аталатын көрсетіледі. Кез келген программада осындай жолдар орындалғаннан кейін графикалық мүмкіндіктер пайдалынала бастайды.

  Графикалық  режімнен шығу (программаны аяқтау ) үшін параметірсіз жазылатын Closgraph процедурасы пайдалынады. Бұл процедура орындалғанда барлық графикалық режімдар алынып тасталады және бейнелер буфері босатылады.

 Get Graph Mode:integer;функциясы адаптердің яғни графикалық драйвердің ағымдағы режімнің мәнін береді.

SetGraphMode(Mode:integer)- бұл процедура графикалық режім орнатады да, экранды тазартады, мұандағы Mode- орнатылатын режімнің коды. Мысалы осы процедура арқылы графикалық режінен мәтіндік режімге шығуға және кері ауысуға болады.

Pogram reg;

Uses graph;

Var f,g:integer;

Begin

F:= detect; init graph(f,g,’’);

Writeln(‘graficalk regim’);

Writeln(‘Enter-di bas’);

Readln;

RetoreCRTMode; writeln(matindik regim’)

Readln;

Setgraph Mode(get graphMode);

Writeln(‘);

Readln;

Closgraph

End.

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

moveTo(X,Y:integer)- курсорды көрсетілген мәндері бойынжа жаңа координаталарға жылжыту( көрсеткіштің жаңа орнын анықтау)

MoveRel(DX,DY:integer) – курсорды тұрған нүктеден әрі қарай ДХ бірлігіне көлденең( оңға) ДҮ бірлігіне тіке(төмен) бірлікке орын оуыстыру

RestoreCRTMode процедурасы графикалық режімнің алдындағы режімді қалпына келтіреді. Оның Closegraph процедурасынан өзгешелігі – қойылған графикалық режімдерді өшірмейді, буферді тазаламайды.

GetX:integer функциасы Х координатасының ағымдағы мәнін береді,

GetY: integer функциасы Ү координатасының ағымдағы мәнін береді.

   Геометриалық объектілерді құру процедуралары.

Нүкте салу операторы . Экранның кез келген жеріне нүкте салуға болады , Graph модуліне нүкте PutPixel процедурасы арқылы саланады, оның пішімі

Put Pixel (X,Y: integer; Color: word);

Мұндағы Х,Ү- нүкте координаталары , соІог оның түсін анықтайды. Мысалы For i:=1 to 60 do PutPixel(I,1,Red) операторы бірінші қатарға 60 қызыл нүктеден тұратын нүкте салады. Экран бетіндегі бұрын салған нүктенің орнын анықтау үшін:

GetPixel(X,Y:integer): word; функциасы қолданылады.

Түзу  сызық салу процедурасы экранда  екі шетінің координаталары берілген кесінді сызуды атқарады. Оның пішімі

Line(X1,Y1,X2,Y2:integer); мұнда ағымдағы түс бойынша координаталары Х1,Ү1 нүктесінен Х2,Ү2 нүктесіне дейін кесінді сызылады, мысалға Line(1,1,600,1).Бастапқы нүкте көрінбесе , онда мына процедура :

Lineto (X,Y :integer; - курсор тұрған орынан бастап координаталары Х,Ү болатын нүктеге дейін түзу сызық сызады.

LineRel(DX,DY: integer) –ағымдағы нүктеден қашықтығы координаталары өсімшесіне ДХ, ДҮ сәйкес болатын жаңа нүктеге дейін түзу сызық сызылады. Турбо Паскаль да жіңішке, қалың , штрихті, пуектирлі т.б сызықтар сызылады. Сызық стилі мына процедура арқылы салынады.

SetLineStyIy(T,O,Th:word)- сызық қалыңдығы мен стилін орнату , Т- сызық түрі, Р – сызық үлгісі, Тһ- сызық қалыңдығы.

Р параметірі ұзындығы 16 пикселден тұратын кесінді  сызады, ол орындаушы тағайындайтын  типте жұмыс атұарса , мәні 4, стандартты стиль қолданса мәні 0болады; Тһ параметірі төмендегі екі тұрақты мәннің бірін ғана қабылдайды:

NormWidth=1(қалыңдыға бір пиксел сызық)

ThickWidth=3;(қалыңдығы үш пиксель сызық)

Мысалы:

SetLineStylr(Dootedn,0, normWidth);

Retangle(15,15,150,130);

Сызық салу кезінде оның түсі алдыңғы орнатылған түспен беріледі, оны өзгерту үшін:

SetColor( color: word); процедурасы қолданылады, мұндағы соІог – жаңадан орнатылатын түрінің аты немесе нөмірі. Мысалы,

SetColor(cyan)           ( сызық түсі күгілдір болады)

setColor(7)                 ( сызық түсі боз болады)

SetBkColor(color:word) процедурасы экран түсін, яғни рең түсін өзгертеді, мұндағы соіог – жаңадан орнатылатын түстің аты немесе нөмірі.EGA/VGA адаптерлері үшін рең түсін 0..63 аралығында беруге болады. Мысалы,

SetBkColor(blue);  экран түсі көк болады

SetColor(4)экран түсі қызыл болады

 Көп  бұрыш сызу процедурасы көп  бұрыштың бірнеше түрін сала  алады, олардың түсі , стилдері  келісім бойынша немесе setColor т.б процедуралар арқылы орнатылады.

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

For i:=1 to 100 do

Begin

Setcolor (grin);

Retangle(2006Random(300)250,300);

Dely(50);

ClerDevice

End;

Бойалған  төртбұрыштар келсі процедуралар арқылы сызылады.

Bar(x1,y1,x2,y2:integer);- мұнда ағымдағы түспен іші бойалған төртбұрыш сызады. Бояау түсін SetfillStyle процедурасы арқылы енгізуге болады.

SetFilleStily(Pattern6 Color:word)- объектінің ішін бояйды, толтыру стилі мен түсін көрсетеді. Мұндағы Pattern – толтыру стилі, ол тұрақты немесе нөмір арқылы береді; соІог – толтыру түсі. Толтыру стилі тұрақты арқылы жазылады немесе 0-ден 12- ге дейінгі мәндермен белгіленіді.

Floodfill(x,y:integer; Bor;word) –таңдалған стиль бойынша тұйық фигураның ішін бойяйды.Мұндағы х,ү – фигураның ішінде жатқан кез келген нүктенің координатасы, Иог – шегара сызығының түсі.

DrawPoly(N:= word; var Poins);- ағымдағы түспен және сызық түсімен көп бұрыш сызады, мұндағыN- сынық сызық саны , Pointes- pointetype типіндегі сынық сызықтардың координаталары.

drawPoly процедурасын пайдаланып , көсбұрыш сызуға да болады.

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

Circle(x,y: integer;r:word); шеңбер сызу процедурасы, мұндағы х, ү – центірдің координатасы, г- пиксель арқылы берілген щеңбердің радиусы. Шеңбер ағымдағы түспен сызылады және сызықтың қалыңдығы берілген             стильге байланысты болады.Мысалы центір(450,100) нүктесінде орналасқан радиусы 50 пиксель жасыл шеңбер сызу былай орындалады.

Setcolor(green);

Circle(450,100,50);

Arc(x,y:integer;B1,B2,R:word)- доға сызу процедурасы, мұндағы х,ү – центірдің координаталары, И1,И2- доғаға сәйкес бұрыштың алғашқы және соңғы мәндері,r- радиусы. Мысалы , центірі (450,100) нүктесінде орналасқан радиусы 50 пиксель 0мен 90 градус аралығындағвы қызыл доға сызу былай жазылады:

Setcolor(red);

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

Ellips(x,y:integer;B1,B2,RX,RY: word); -эллипс доғасын сызады, мұндағы х,ү – центр координаталары, В1,В2 – алғашқы және соңғы доғаның бұрыштары, RX,RY- эллипстің жатық және тік радиустары. Эллипстіңдоғасы бастапқы В1 бұрышынан соңғы В2 бұрышына дейін сызады, егер В1= 0 және В2= 360 градусқа тең болса онда эллипс салынады. Эллипс ішін бояу Setcolor, Setfillstyle процедурасы арқылы орындалады.

Setcolor(ligthred);{ эллипс сызығының түсін орнату}

Ellips(100,100,0,360,30,50);{ толық эллипс сызуы }

Эллипс  ішкі экран түсімен бірдей , оның іші боялғанын салу келесі процедурамен орындалады.

Информация о работе Паскальдағы графикалық режим