Программалау тілдері жоғары оқу орындарына арналған оқулық



жүктеу 2,9 Mb.
Pdf просмотр
бет64/82
Дата19.11.2018
өлшемі2,9 Mb.
#20460
түріПрограмма
1   ...   60   61   62   63   64   65   66   67   ...   82

 
177 
аламыз,  оның  периоды  16  пиксел  болуы  тиіс.  Егер  сызықта  жарықтанатын 
пиксел  керек  болса,  ҥлгіде  1-ге  тең  бит,  болмаса  –  0-ге  тең  бит  алу  керек. 
Сонымен, obr мәні тӛрт таңбалы оналтылық константа болып, ол ҧзындығы 16 
пиксел сызық кесіндісін кодтау ҥлгісі болуы тиіс. 
Мысалы, пунктир сызық ҥшін алынған ҥлгі мынадай болуы мҥмкін: 0x3333, 
бҧл мынадай биттер тізбегіне сәйкес келеді  0011 0011 0011 0011. 
Графикалық режимде экрандағы тҧйық сызық іші белгілі бір тҥспен боялуы 
мҥмкін. 
Штрихтау сызықтарын тағайындау және тұйық аймақты бояу   
        функциясы   –   setfillstyle (stil, col); 
аймақты бояу, толтыру стилін береді, мҧндағы stil – алдын ала мәні анықталған 
константа, стильді береді, оның мәндері тӛменгі кестеде кӛрсетілген; col – тҥс 
кодына  сәйкес  бҥтін  сан  немесе  ағылшынша  тҥс  аты;  ол  setcolor  функциясын 
анықтауда кӛрсетілген.  
Бояу тәсілін анықтайтын stil параметрінің мҥмкін мәндері 
EMPTY_FILL 
      0 
аймақты фон тҥсімен толтыру 
SOLID_FILL 
     1 
кӛрсетілген тҥспен толтыру  
LINE_FШLL 
     2 
кӛлденең штрих сызықтармен толтыру 
LTSLASH_FILL      3 
45 градус оңға қиғаш жіңішке штрих сызықтармен толтыру 
SLASH_FILL 
     4 
45 градус оңға қиғаш қалың штрих сызықтармен толтыру 
BKSLASH_FILL       5 
45 градус солға қиғаш жіңішке штрих сызықтармен толтыру 
LTBKSLASH_FILL   6 
45 градус солға қиғаш қалың штрих  сызықтармен толтыру 
HATCH_FILL 
      7 
торсызықты штрихтармен толтыру  
XHATCH_FILL        8 
45 градус оңға қиғаш сирек штрих сызықтармен толтыру 
INTERLEAVE_FILL   9  45 градус қиғаш жиі штрих тор сызықтармен толтыру 
WIDE DOT_FILL     10   сирек нҥктелермен толтыру  
CLOSE_DOT_FILL   11   жиі нҥктелермен толтыру  
Сызық  стилі  мен  тҥсі  кӛптеген  функцияларда  (bar,  bar3d,  sector,  т.б.) 
қолданылады. Енді бір мысал келтірейік. 
// Әртүрлі сызықтар салу мысалы 
#include  
#include  
#include  
main() 
{  
int gdriver=DETECT;      
int gmode;               
int x, y, xk = 500;   
initgraph (&gdriver, &gmode,"C:\\TC\\bgi");   
setcolor(RED);  x=80; y=30;   
moveto(x,y);   outtext("жай сызық - SOLID_LINE");   
setlinestyle (SOLID_LINE,0,NORM_WIDTH);  y+=20;   
line(x,y,xk,y); 


 
178 
y+=40; moveto(x,y);  
outtext("пунктир сызық – DOTTED_LINE");   
setlinestyle (DOTTED_LINE,0,NORM_WIDTH);   
y+=20;  line(x,y,xk,y);   
y+=40;  moveto(x,y);  
outtext("штрих-пунктир сызық – CENTER_LINE");   
setlinestyle (CENTER_LINE,0,NORM_WIDTH);   
y+=20;  line(x,y,xk,y);   
y+=40;  moveto(x,y);  
outtext("штрихі ұзынша пунктир сызық");   
setlinestyle (DASHED_LINE,0,NORM_WIDTH);   
y+=20;  line(x,y,xk,y); 
y+=40;  moveto(x,y);  
outtext("қалың сызық");   
setlinestyle (SOLID_LINE,0,THICK_WIDTH);   
y+=20;  line(x,y,xk,y);   
getch();   
closegraph(); 

11.3. Тұйық сызықтар салу 
Тіктӛрбұрыш контурын салу үшін  rectangle(xl,yl,x2,y2); 
функцияcы қолданылады, ол сол жақ жоғарғы бҧрышы – x1,y1, оң жақ тӛменгі 
бҧрышы  -  х2,у2  болып  келетін  тӛртбҧрыш  сызады.  Сызық  типі  setlinestyle 
функциясымен, ал тҥсі — setcolor функциясымен анықталады. 
Іші боялған тіктӛрбұрыш салу үшін  
 
 
bar(xl,yl, x2,y2); 
функциясы пайдаланылады, x1, y1 сол жақ 
жоғарғы  бҧрыштың,  ал  х2  ,  у2  –  оң  жақ 
тӛменгі бҧрыштың координаталары. 
 Мҧның  қабырғалары  ӛстерге  параллель 
болады, контуры кӛрсетілмейді. Оны бояу 
стилі setfillstyle() функциясымен анықталады. 
Алдыңғы жақ беті боялған 
параллелепипед салу функциясы  
bar3d(xl,ylx2,y2, Қалыңдығы, Ж_Беті); 
сыртқы контуры сызылған паралелепипед 
салады (11.3 сурет), мҧндағы x1,y1  пара-
метрлері  сол  жақ  жоғарғы  бҧрыштың,  ал 
х2,у2  –  оң  жақ  тӛменгі  бҧрыш  координа-
талары.  Қалыңдығы  параметрі  –  алдыңғы 
және  артқы  жақтарының  ара  қашықтығы,  егер  ол  0  болса,  онда  айналасы  сы-
зылған  тӛртбҧрыш  салынады.  Ж_Беті  параметрі  –  жоғарғы  жақ  шеттерін 
сызуды (1 – TOP_ON ) кӛрсетеді. Егер ол 0 (TOP_OFF) болса, сызықтар сызыл-
 
11.3 сурет. Параллелепипед салу 


 
179 
майды (бірінің ҥстіне бірі қойылған бірнеше параллелепипед салу кезінде қажет 
болады). 
Мысалы, бірінің ҥстіне бірі қойылған бірнеше паралелепипед салу: 
setbkcolor (WHITE);  
setcolor (GREEN);  
bar3d(230, 50, 250, 150, 15, 1);  
bar3d(220, 150, 260, 180, 15, 1);  
bar3d(300, 150, 340, 180, 15, 0);  
bar3d(300, 50, 340, 150, 15, 1); 
 
Кӛпбұрыш салу функциясы 
              drawpoly(НүктелерСаны, Координаталары); 
тҥзу  сызықтардан  тҧратын  тҧйық  аймақты  кӛпбҧрыш  сызады.  НүктелерСаны 
параметрі  кӛпбҧрыш  тӛбелері  санын,  Координаталары  параметрі  сол  тӛбелер 
координаталарын жиым элементтері ретінде береді. Жиымның 0-ші және 1-ші 
элементтері  алғашқы  нҥкте  координаталары,  2-ші,  3-ші  элементтері  –  екінші 
нҥкте  координаталары,  т.с.с.  Енді  осы  функцияны  пайдаланып,  алты  бҧрыш 
салайық. 
// кӛпбұрыш салу 
#include  
#include  
#include  
main() 

int gdriver=DETECT;  
int gmode;   
initgraph (&gdriver, &gmode, "C:\\TC\\bgi"); 
int x,y,t[14]={ 450, 150, 500, 350, 400, 400, 150,400, 50,150, 250,80, 450,150 };  
setcolor(WHITE);   
drawpoly(7, t);    
settextstyle(3,HORIZ_DIR,1);   
outtextxy(458,135,"C(450,150)");  outtextxy(508,335,"D(500,350)");  
outtextxy(400,400,"E(400,400)");  outtextxy(150,400,"F(150,400)");   
outtextxy(38,138,"A   (50,150)");  outtextxy(243,55,"B(250,80)");    
getch();   
closegraph(); 
} 
 
Іші боялған кӛпбұрыш салу үшін қолданылатын функция 
 
fillpoly (НүктелерСаны, координаталары); 
мҧндағы  НүктелерСаны  –  тӛбелердің  саны,  координаталары  –  жиым  эле-
менттері  тҥрінде  берілген  тӛбе  координаталары.  Әрбір  тӛбе  координатасы  екі 
бҥтін  санмен  беріледі.  Бҧл  функция  тӛбелердің  алғашқы  нҥктесін  соңғы 


жүктеу 2,9 Mb.

Достарыңызбен бөлісу:
1   ...   60   61   62   63   64   65   66   67   ...   82




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау