C/C++ tilining grafik imkoniyatlari



Download 186,23 Kb.
Sana11.06.2022
Hajmi186,23 Kb.
#653315
Bog'liq
Grafika 1

C/C++ tilining grafik imkoniyatlari


Koordinatalar sistemasi
(0,0)
(x,y)
X( 640)
Y (480)
x
y
“ Sendvich” prinsipi
Grafik rejimida ishlash
Grafika uchun oyna ochish
Grafika oynasini yopish

C/C++ tilining grafik imkoniyatlarini ishga tushirish uchun quyidagi direktiva ulanishi kerak: # include

Matn rejimidan grafik rejimiga o’tish uchun maxsus funksiyadan foydalaniladi: initgraph (&gd, &gm, “ path “); bu erda: gd – drayver nomi gm – rejim nomi path – yo’l

Drayverlar .bgi fayllarida saqlanadi. Ko’pincha gd = 0 (yiki gd = DETECT) deb olinadi. Grafik rejimidan yana matn rejimiga o’tish kerak bo’lsa closegraph ( ); funksiyasi ishlatiladi


#include
#include
void main( )
{ int gd=0, gm ;
... // dastur
getch( );
}
initgraph (&gd, &gm, “ c:\bc\bin “);
closegraph();
Grafik dasturning strukturasi
Yopish funksiyasi
Kerakli fayllarni ulash
Grafik rejimini o’rnatish funk.
Ranglar kodi

Kod

Nomi

0

BLACK

1

BLUE

2

GREEN

3

CYAN

4

RED

5

MAGENTA

6

BROWN

7

LIGHTGRAY

Коd

Nomi

8

DARKGRAY

9

LIGHTBLUE

10

LIGHTGREEN

11

LIGHTCYAN

12

LIGHTRED

13

LIGHTMAGENTA

14

YELLOW

15

WHITE

Ranglar politrasi
rang = R + G + B
Red
qizil
0..255
Blue
Ko’k
0..255
Green
yashil
0..255
R = 218 G = 164 B = 32
R = 135 G = 206 B = 250
Ranglar soni qancha?
?
256·256·256 = 16 777 216 (True Color)
Ranglarni boshqarish
Chiziq va matn rangi: set color = rangini o’rnat
setcolor ( 12 );
setcolor ( COLOR(255,255,0) );
Rang to’kish usuli: set fill style = rang to’kish usulini o’rnat
setfillstyle ( usul, rang );
0 – uzluksiz; 1 – uzluksiz; 2 – gorizontal chiziq; 3..6 – turli og’ma chiziqlar;
7..8 – setkali chiziqlar; 9..11 – nuqtali;
Rang №
R
G
B
Nuqta, kesma, siniq chiziq
(x1, y1)
(x2, y2)
setcolor ( 10 );
line(x1, y1, x2, y2);
(x, y)
putpixel (x, y, 9);
(x1, y1)
(x2, y2)
(x3, y3)
(x4, y4)
(x5, y5)
setcolor ( 12 );
moveto (x1, y1); lineto (x2, y2);
lineto (x3, y3);
lineto (x4, y4);
lineto (x5, y5);
Rangi
To’g’ri to’rtburchaklar
(x1, y1)
(x2, y2)
setcolor ( 9 );
rectangle (x1, y1, x2, y2);
(x1, y1)
(x2, y2)
setfillstyle ( 1, 12 );
bar (x1, y1, x2, y2);
(x1, y1)
(x2, y2)
setfillstyle ( 1, 12 );
bar (x1, y1, x2, y2);
setcolor ( 9 );
rectangle (x1, y1, x2, y2);
12-rang
uzluksiz
Aylana, rang to’kish, matn yozish
setcolor (4);
circle ( x, y, R );
setfillstyle ( 1, 11 );
floodfill ( x, y, 0);
(x, y)
(x, y)
R
Chegara rangi nomeri
(x, y)
Eng zo’r dastur
setcolor ( 9 );
outtextxy(10,10,“Eng zo’r dastur”);
Masalan:
(200, 50)
(100, 100)
(300, 200)
setfillstyle (1, 9);
bar (100,100,300,200);
setcolor (13);
rectangle (100,100,300,200);
moveto (100,100);
lineto (200, 50);
lineto (300,100);
setfillstyle (1, 14);
floodfill (200, 75, 13);
setcolor (15);
circle (200, 150,50);
setfillstyle (1, 10);
floodfill (200,150, 15);
setcolor (12);
outtextxy (100, 230, "Sharik's house.");
Sharik's house
(300, 100)

Yana quyidagi funksiyalar ham mavjud: getmaxx - жорий режим ва драйверлар учун горизонтал нуқталар сонини аниқлаш; getmaxy - жорий режим ва драйверлар учун вертикал нуқталар сонини аниқлаш. bar3D (x1, y1, x2, y2, h, top) - параллелопипед чизади. Бу ерда h - параллелопипеднинг узунлиги; top - юқори қисмини чизиш учун керак. Агар topоn - бўлса томи бор, агар topoff - бўлса томи йўк. setbkcolor (R); - Орқа фонга ранг бериш

arc (x, y, a, b, r) - ёй чизиш учун. Бу ерда x ва y - марказнинг координаталари, a - бош бурчак, b - охириги бурчак, r - ёй радиуси. Бурчаклар градусда кабул килинади.

arc (x, y, a, b, r) - ёй чизиш учун. Бу ерда x ва y - марказнинг координаталари, a - бош бурчак, b - охириги бурчак, r - ёй радиуси. Бурчаклар градусда кабул килинади.

ellipse (x, y, a, b, xr, yr) - худди шу тартибда эллипс ёйини чизади.

drawpoly (n, p) - купбурчак чизиш учун. Бу ерда n - купбурчакнинг учлари сони; p - Купбурчак учларининг координаталари.

fillellipse (x, y, xr, yr) – markazi x va y, xr kenglikda va yr balandlikda ichi bo’yalgan ellips chizish

linerel(x, y) – x va y koordinatali nuqtadan avvalgi nuqtagacha kesma chizish

Аввал ранг, стили кейин чизмалар курсатилади. Масалан:

setcolor (4); // чегара ранги

setfillstyle (1, 2); // 1-стиль ва яшил ранг

circle (50, 50, 35);

floodfill (50, 50, 4); /*айлана ичига ранг тукиш, буяладиган чегара ранги рангли калам билан бир хил булиши керак*/

18. setlinestyle (s, a, b) – турли стилдаги чизикларни чизиш учун; Бу ерда s- style номери; a –фойдаланувчи стилини яратиши мумкин булган параметр, одатда а=1 деб олинади; b- чизикнинг калинлигини курсатадиган параметр 0 – оддий чизик; 1,2 ,3 - турли пунктир чизиклар 4 – сийрак нуктали чизик.

Grafik rejimida ham turli shriftlardan foydalanib matnlar yozish mumkin. Barcha shriftlar .chr fayllarda saqlanadi. Ular .bgi fayllari bilan bir katalogda saqlanishi kerak. outtextxy (x, y, “matn”); - matnni yozish; settextstyle(sh, n, r); - matn shriftini o’rnatish. Bu erda: sh – shrift nomeri ; n – yonalishi; r – razmeri. Masalan: settextstyle (0, 1, 4); outtextxy (50, 50, “Axborot texnologiyalari”);

Masalan: sin(x) funksiyasining grafigini chizuvchi dastur. # include # include # include # include void main( ) { int i, j, gd=0, gm; float x, y; initgraph( &gd, &gm, “ “); setcolor (13); line (320, 20, 320,480); line (20, 240, 640, 240); outtextxy(10, 10, “4.1-lab.ishi. Boboev Umid.”);

settextstyle ( 0, 0, 4); outtextxy (20, 20, “y=sin(x) funksiyasi”); x = -10; do { y = sin(x); putpixel (320+10*x, 240 – 5*y, 4); x +=0.001; delay (30); } while (x <=10); getch ( ); closegraph( ); }

Masalan: #include #include #include void piyoda(int x,int y,int c) { setcolor(c); line(x*80+30,y*80+30,x*80+25,y*80+50); line(x*80+50,y*80+30,x*80+56,y*80+50); rectangle(x*80+15,y*80+50,x*80+65,y*80+65); circle(x*80+40,y*80+20,15); setfillstyle(1,22-c); floodfill(x*80+40,y*80+15,c); floodfill(x*80+40,y*80+35,c); floodfill(x*80+40,y*80+55,c); }

int main(int argc, char *argv[]) { initwindow(641,641,"Shaxmat"); setcolor(15); int i,j,k; int a[8][8]={{1,2,3,4,5,3,2,1},{6,6,6,6,6,6,6,6}, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, {16,16,16,16,16,16,16,16}, {11,12,13,14,15,13,12,11}}; rectangle(0,0,640,640); for (i=0;i<8;i++) for(j=0;j<8;j++) if ((i+j)%2==0) bar(i*80,j*80,i*80+79,j*80+79); for (i=0;i<8;i++) { piyoda(i,1,12); piyoda(i,6,10); }


Download 186,23 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish