2. 12-Ma’ruza C++ tilining grafik



Download 1,28 Mb.
bet1/4
Sana20.02.2022
Hajmi1,28 Mb.
#460293
  1   2   3   4
Bog'liq
Mustaqil ish. C tilining grafik imkoniyatlari. Inisializasiyallash. Ekrandan foydalanish. Grafik holat. Funksiya grafiklarini qurish

  • 2.12-Ma’ruza
  • C++ tilining grafik
  • imkoniyatlari. Inisializasiyallash.
  • Ekrandan foydalanish. Grafik holat.
  • Funksiya grafiklarini qurish
  • HTTP://ACM.TUIT.UZ/FORUM
  • Koordinatalar sistemasi
  • (0,0)
  • (x,y)
  • X( 640)
  • Y (480)
  • x
  • y
  • http://acm.tuit.uz/forum
  • Grafik rejimida ishlash
  • Grafika uchun oyna ochish
  • http://acm.tuit.uz/forum
  • C/C++ tilining grafik imkoniyatlarini ishga tushirish uchun quyidagi direktiva ulanishi kerak:
  • # include
  • Matn rejimidan grafik rejimiga o’tish uchun maxsus proseduradan foydalaniladi:
  • initgraph (&gd, &gm, “ path “);
  • bu erda:
  • gd – drayver nomi
  • gm – rejim nomi
  • path – yo’l
  • http://acm.tuit.uz/forum

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

  • http://acm.tuit.uz/forum
  • #include
  • #include
  • void main( )
  • { int gd=0, gm ;
  • ... // dastur
  • getch( );
  • }
  • initgraph (&gd, &gm, “ c:\bc\bin “);
  • closegraph();
  • Grafik dasturning strukturasi (Borland C++)
  • Grafik rejimni yopish funksiyasi
  • Grafik rejimni o’rnatish funksiyasi
  • http://acm.tuit.uz/forum
  • #include
  • int main( )
  • {
  • initwindow(640, 480);
  • ... // dastur
  • getch( );
  • closegraph();
  • return 0;
  • }
  • Grafik dasturning strukturasi (Dev-C++)
  • Kerakli fayllarni ulash
  • http://acm.tuit.uz/forum
  • Dev-C++ da grafika bilan ishlash uchun quyidagi sozlashlarni bajarish lozim:
  • graphics.h va libbgi.a (biblioteka) fayllarni yuklab oling.
  • 1. graphics.h faylni C:\Dev-Cpp\include papkaga nusxa ko’chiring.
  • 2. libbgi.a faylni C:\Dev-Cpp\lib papkaga nusxa ko’chiring.
  • Dev-C++ ni ishga tushiring va ToolsCompiler options menyusiga kiring.
  • Compiler bo’limiga o’ting va Add these commands to the linker command line ga ptichka qo’ying va uning oynasiga satrni qo’shing
  • -lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32
  • Quyida rasmda ko’rsatilgan:
  • Dev-C++ da grafika va uni sozlash
  • http://acm.tuit.uz/forum
  • Dev-C++ da grafika va uni sozlash
  • http://acm.tuit.uz/forum
  • 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
  • http://acm.tuit.uz/forum
  • 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)
  • http://acm.tuit.uz/forum
  • 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 – usulsiz; 1 – uzluksiz; 2 – gorizontal chiziq;
  • 3..6 – turli og’ma chiziqlar;
  • 7..8 – setkali chiziqlar; 9..11 – nuqtali;
  • Rang №
  • R
  • G
  • B
  • http://acm.tuit.uz/forum
  • 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
  • http://acm.tuit.uz/forum
  • 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”);
  • http://acm.tuit.uz/forum
  • 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)
  • Topshiriq
  • 1: “Qurbaqa"
  • 2: “Toj"
  • http://acm.tuit.uz/forum
  • Штрихлаш
  • (x1, y1)
  • (x2, y2)
  • N та чизиқ (N=5)
  • h
  • rectangle (x1, y1, x2, y2);
  • line( x1+h, y1, x1+h, y2);
  • line( x1+2*h, y1, x1+2*h, y2);
  • line( x1+3*h, y1, x1+3*h, y2);
  • ...
  • h = (x2 – x1) / (N + 1.);
  • rectangle (x1, y1, x2, y2);
  • for (x = x1+h; x < x2; x += h)
  • line(x, y1, x, y2);
  • x
  • x нинг каср қисми ташланиб юборилади
  • x
  • float x, h;
  • !
  • Каср қисмидаги натижа
  • Ранг қандай ўзгартирилади?
  • (x1, y1)
  • (x2, y2)
  • setfillstyle ( 1, c );
  • floodfill( ???, ???, 15 );
  • заливка ранги
  • с ни ўзгартириш: 1, 2, 3, ...
  • x
  • (x-1, y1+1)
  • for (x = x1+h; x <= x2; x += h)
  • {
  • line (x, y1, x, y2);
  • setfillstyle ( 1, );
  • floodfill (x-1, y1+1, 15);
  • }
  • c = 1;
  • c
  • c ++;
  • чегара ранги
  • <=
  • Нимада муаммо бўлиши мумкин?
  • ?
  • http://acm.tuit.uz/forum
  • #include
  • int main(){
  • initwindow(600,600);
  • int x=10,x2=200, y1=10, y2=200,h, c=0, N=5;
  • h=(x2-x)/(N+1);
  • rectangle (x, y1, x2, y2);
  • setcolor(15);
  • for ( x = x+h; x <= x2; x += h)
  • {
  • line (x, y1, x, y2);
  • setfillstyle ( 7, c );
  • floodfill (x-1, y1+1, 15);
  • c++;
  • }
  • getchar();
  • closegraph();
  • getchar();
  • }
  • Дастури
  • Штрихлаш
  • (x1, y1)
  • (x2, y2)
  • (x3, y2)
  • a
  • h
  • (x3+a, y1)
  • line( x1+h, y1, x1+h-a, y2);
  • line( x1+2*h, y1, x1+2*h-a, y2);
  • line( x1+3*h, y1, x1+3*h-a, y2);
  • ...
  • h = (x3 – x2) / (N + 1.);
  • a = x2 – x1;
  • x = x1 + h;
  • for (i = 1; i <= N; i ++, x += h )
  • line(x, y1, x-a, y2);
  • x
  • x-a
  • i ++, x += h
  • Плюс ва минуслар?
  • ?
  • http://acm.tuit.uz/forum
  • #include
  • int main(){
  • initwindow(600,600);
  • int x1=30,y1=10,x2=10, y2=100,x3=500,h, N=5;
  • h = (x3 - x2) / (N + 1.);
  • int a=x1-x2;
  • x1 = x1 + h;
  • line( x1,y1, x3+a,y1);
  • line( x1-a, y2, x3, y2);
  • line( x3+a, y1, x3, y2);
  • for (int i= 1; i <= N; i++, x1 +=h )
  • line(x1, y1, x1-a, y2);
  • getchar();
  • closegraph();
  • getchar();
  • }
  • Дастури
  • line( x1,y1, x3+a,y1);
  • line( x1-a, y2, x3, y2);
  • line( x3+a, y1, x3, y2);
  • Штрихлаш
  • (x1, y1)
  • (x2, y2)
  • hx
  • hy
  • y
  1   2   3   4




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