lineto (x, y) - жорий нуктадан x ва y координатали нуктагача кесма чизиш;
/* linerel example */
#include
#include
#include
#include
int main(void)
{ int gdriver = DETECT, gmode;
char m[80];
initgraph(&gdriver, &gmode, "");
linerel(300, 100);
getch();
closegraph();
return 0;}
lineto (x, y) - жорий нуктадан x ва y координатали нуктагача кесма чизиш;
/* lineto example */
#include
#include
#include
#include
int main(void)
{ int gdriver = DETECT, gmode;
char m[80];
initgraph(&gdriver, &gmode, "");
moveto(20, 30);
srintf(m, " (%d, %d)", getx(), gety());
outtextxy(20,30, m);
lineto(100, 400);
sprintf(m, " (%d, %d)", getx(), gety());
outtext(m);getch();
closegraph();
return 0;
}
Спрайтларни “тирилтиришни” кўплаб усуллари мавжуд бўлиб, уларнинг барчасини икки гуруҳга бўлиш мумкин: комбинацион ва морфологик. Комбинацион усуллар асосида қуйидаги алгоритмни турли модификацияси ётади.
Экранда спрайтни вариантини чиқариш;
Спрайтни ўчириш;
Қандайдир силжиш орқали бошқа бир (ўзгартириш) спрайтни чиқариш
/* moverel example */
#include
#include
#include
#include
int main(void)
{ int gdriver = DETECT, gmode;
char msg[80];
initgraph(&gdriver, &gmode, "");
moveto(20,30);
putpixel(getx(), gety(), getmaxcolor());
sprintf(msg, " (%d, %d)", getx(), gety());
outtextxy(20,30, msg);
moverel(400, 300);
putpixel(getx(), gety(), getmaxcolor());
sprintf(msg, " (%d, %d)", getx(), gety());
outtext(msg); getch(); closegraph(); return 0;
}
. setlinestyle (s, a, b) – турли стилдаги чизикларни чизиш учун; Бу ерда s- style номери; a –фойдаланувчи стилини яратиши мумкин булган параметр, одатда а=1 деб олинади; b- чизикнинг калинлигини курсатадиган параметр /* setlinestyle example */
0 – оддий чизик;
1 – майда пунктир чизик;
2 – калин ва узунчок пунктир чизик
3 – юпка ва узунчок пунктир чизик;
4 – сийрак нуктали чизик.
#include
#include
#include
#include
#include
char *lname[] = { "SOLID_LINE", "DOTTED_LINE", "CENTER_LINE", "DASHED_LINE", "USERBIT_LINE" };
int main(void)
{ int gdriver = DETECT, gmode; int style, midx, midy, userpat,x=10,y=10,x1=150,y1=60;
char stylestr[40]; initgraph(&gdriver, &gmode, ""); userpat = 1;
for (style=SOLID_LINE; style<=USERBIT_LINE; style++){ setlinestyle(style, userpat, 1)
strcpy(stylestr, lname[style]);
line(x+3, y+2, x1-10,y1-30);
rectangle(x,y, x1, y1);
outtextxy(x+2, y+20, stylestr);
getch(); x=x+160;x1+=160;
if(x1>=getmaxx()){y+=70;y1+=70;x=10;x1=150;}
closegraph(); return 0;}
График режими холатида турли шрифтлардан фойдаланиб матнларни хам
ѐзса булади. Шрифтлар .chr кенгайтмали файлларда сакланади. Улар .bgi
файллари билан битта каталогда сакланиши шарт.
/* textwidth example */
#include
#include
#include
#include
int main(void)
{ int gdriver = DETECT, gmode;
int x = 10, y = 0;
int i;
char m[80];
initgraph(&gdriver, &gmode, "");
y = 12;
for (i = 1; i<6; i++) {
settextstyle(TRIPLEX_FONT, HORIZ_DIR, i);
sprintf(m, "o'lcham: %d", i);
outtextxy(x, y, m);
x+=textwidth(m);
if((x+150)>getmaxx()){ x=0;y+=20;}
} getch(); closegraph();return 0;}
1. outtextxy (x, y, 'matn'); - матнни ѐзиш; бу ерда x ва y матн бошланадиган нукта координаталари; масалан: outtextxy (10, 10, 'Mirzaev K. 212-07 Aty‟);
2. settextstyle (sh, n, r); мант шрифтини урнатиш; бу ерда sh - шрифт номери (0 - векторли шрифт, 1 - стандарт шрифт); n - шрифт йуналиши (0 - чапдан унгга, 1 - куйидан юкорига ѐзиш); r - шрифт размери (оддий шрифтда 1, векторли шрифтда 4 деб олинади);
3. settextjustify (h, v) - ѐзилган каторни текислайди. У outtextxy процедурасидан кейин ѐзилади. Бу ерда h - горизонтал текислаш; v - вертикал текислаш; Горизонтал текислаш учун: 0 - чапга; 1- марказга; 2 - унгга. Вертикал текислаш учун: 0 - пастга; 1 - марказга; 2 - юкорига
/* textheight example */
#include
#include
#include
#include
int main(void) {
/* request autodetection */
int gdriver = DETECT, gmode;
int y = 0; int i; char m[80];
initgraph(&gdriver, &gmode, "");
for (i=1; i<11; i++) {
settextstyle(TRIPLEX_FONT, HORIZ_DIR, i);
sprintf(m, "o’lcham: %d", i); outtextxy(1, y, m); y += textheight(m); } getch(); closegraph(); return 0; }
setusercharsize - вектор шрифтлари учун бир хил символларнинг эни ва
буйини урнатади. Масалан: setUserCharSize(x1, y1, x2, y2);
#include
#include
#include
#include
int main(void)
{ int gdriver = DETECT, gmode, errorcode;
int midx, midy;
initgraph(&gdriver, &gmode, "");
midx = getmaxx() / 2;
midy = getmaxy() / 2;
setfillstyle(9, 14);
pieslice(midx, midy, 30,350,100);getch(); closegraph();return 0;}
imagesize (x1, y1, x2, y2) – экраннинг чап юкори нуктаси ва унг пастки нуктаси координаталаридан тугритуртбурчакли сохани саклаш учун керак буладиган хотиранинг улчами (байтларда олинади); getimage (x1, y1, x2, y2, p) – динамик хотиранинг берилган р майдонида тугритуртбурчакли тасвирни саклаш. Бу ерда р – тасвир сакланадиган жойнинг адресини саклайдиган узгарувчи, яъни курсаткич. putimage (x, y, p, m) – экраннинг берилган жойига тасвирни чикариш; бу ерда x ва y – хотиранинг p майдонидаги тасвирдан нусха кучириладиган экран майдонининг чап юкори нуктаси; m – тасвирни экранга чикариш режими. Агар: 28 m = 0 (NormalPut) - тасвирни кучириш. Бунда эскичи учиб, янгиси пайдо булади (худди юриб кетаѐтгандек)
m = 1 (XorPut)
m = 2 (Orput) – m = 3 (AndPut)
/* getmaxwidth and getmaxheight example */
#include
int main(void)
{ /* Make a window, as big as possible */
initwindow(getmaxwidth( ), getmaxheight( ));
/* clean up */
getch(); closegraph(); return 0;}
Matn rejimidan grafik rejimiga o’tish uchun maxsus proseduradan foydalaniladi:
Do'stlaringiz bilan baham: |