Grafik sistemine geçmek için, initgraph() fonksiyonunu kullanmak gerekir. Tüm çizimler sadece DOS ortamında çalışır. Grafik fonksiyonlarının kullanılması için graphics.h başlık dosyası programın başına ilave edilmelidir. Grafik işlemleri için temel işlemler:
          #include <graphics.h>
          ...
          int surucu=DETECT,grmod;        /* DETECT grafik surucusunu otomatik secer */
          initgraph(&surucu,&grmod,"");   /* grafik ekranını başlatır */ 
          ...
          closegraph();                   /* grafik ekranını kapatır */
şeklindedir.
Bazı Grafik Fonksiyonları
Bu bölümde Turbo C grafik fonksiyonlarının bazıları tanıtılmıştır. Bunların dışında biçok fonsiyon vardır. Bu fonksiyonlar derleyicinin başvuru kitabından öğrenilebilir.
renkler : 0-15 arasında (0-Siyah,15-mor) renk kodları ile (yada ingilizce isimleri örneğin YELLOW gibi) tanımlıdır.
| moveto(x,y); | Son noktayı (x,y) noktasına taşır | 
| lineto(x,y); | Son noktadan (x,y) noktasına düz bir çizgi çizer. | 
| line(x1,y1,x2,y2); | (x1,y1) noktasından (x2,y2) noktasına düz bir çizgi çizer. | 
| circle(x,y,r); | Merkezi (x,y) olmak üzere yarıçapı r olan bir çember çizer. | 
| arc(x,y,baş_açı,bit_açı,r); | Merkezi (x,y) noktasında ve yarıçapı r olan, baş_açı açısından dan başlayıp bit_açı açısına kadar bir yay çizer. | 
| ellipse(x,y,baş_açı,bit_açı,xr,yr); | Elipsin bir parçası olan yayı, merkezi (x,y) ve yarıçapları xr, yr olacak biçimde baş_açı açısındandan başlayarak bit_açı açısına kadar bir yay çizer. | 
| putpixel(x,y,renk); | (x,y) noktasına verilen renkte bir nokta çizer. | 
| rectangle(sol,üst,sağ,alt); | Sol üst köşesi (sol,üst) ve sağ alt köşesi (sağ,alt) koordinatlarında olacak şekilde bir dikdörtgen çizer. | 
| bar(sol,üst,sağ,alt); | İki boyutlu ve taralı bir bar çizer. | 
| bar3d(sol,üst,sağ,alt,derinlik,şapka); | Üç boyutlu ön yüzeyi taralı bar çizer. Şapka 0 ise barın üst kısmı çizilmez. | 
| setcolor(renk); | Çizilen olan şeklin rengini belirler | 
| setbkcolor(renk); | Arka alanın rengini belirler. | 
| outtext(*yazılacak ifade); | Yazılacak bir ifadenin grafik ekranında yazdırmak için kullanılır. | 
| outtextxy(x,y,*yazılacak ifade); | Grafik ekranında yazılacak bir ifadeyi (x,y) ile belirlenen noktadan başlayarak yazar. | 
| settextstyle(font,yazı yönü,yazı boyutu); | Ekranda yazılacak olan bir karakterin font'unu, yönünü ve boyutunu belirler. Yön:0 ise yatay, 1 ise dikey yazar. | 
| cleardevice(); | Ekranı temizler. DOS taki CLS komutu gibi. | 
| closegraph(); | Grafik ekranını kapatıp normal yazı ekranına döner. (DOS ekranı). | 
Örnekler
Burada Bir önceki kısımda verilen fonksiyonların, bir kaç uygulaması verilmiştir.
Program 17.1 : Grafik ekranında; bir çizgi, bir çember, bir yay, bir dikdörtgen ve bir elips çizer
1: /* grafik1.c
2:    Bu program, bir çizgi, bir çember, 
3:    bir yay, bir dikdörtgen ve bir elips çizer.
4: */
5: #include <stdio.h>
6: #include <grphics.h>
7:
8: main(){
9:      int sur=DETECT,gmode;
10:      initgraph(&sur,&gmode,"");
11:  
12:      line(12,12,298,198);
13:      circle(200,100,75)  
14:      arc(200,100,90,180,50);
15:      rectangle(10,10,300,200);
16:      ellipse(320,240,0,180,50,70);  
17:
18:      getchar();
19:      closegraph();
20: return 0;  
21: }
Program 17.2 : Ekranda yatay ve dikey iki yazı yazar ve farklı kalınlıkta iki çizgi çizer
1: /* grafik2.c 
2:    Bu program ekranda yatay ve dikey iki yazı yazar ve
3:    farklı kalınlıkta iki çizgi çizer.
4: */
5: #include <graphics.h>
6: main(){
7:       int sur=DETECT,grmode;
8:       initgraph(&sur,&grmde,"");
9:
10:      outtext("Merhaba C.");   
11:      outtextxy(30,40,"Bu yazi YATAY");
13:
14:      settextstyle(2,1,5);   
15:      outtextxy(50,60,"Bu yazi DIKEY");
16:
17:      setlinestyle(0,0,3);
18:      line(320,240,500,350);
19:
20:      setlinestyle(1,1,3);
21:      circle(320,240,100);
23: }
Program 17.3 : y=f(x) ile belirlenen bir fonksiyonu çizer
1:  /* grafik3.c
2:     Bu program, [-20,+20] aralığında sin(x) 
3:     fonksiyonunun grafiğini çizer. 22: satırdaki fonksiyonu
4:     değiştirerek, başka fonksiyonlar da çizilebilir.
5:  */
6:
7:  #include <graphics.h>
8:  #include <math.h>
9:
10:  main(){       
11:      int sur=DETECT,grmode;
12:       float x,y,X,Y,olcek;
13:       initgraph(&sur,&grmde,"");
14:
15:       putpixel(320,240,5);
16:       line(0,240,640,240);
17:       line(320,0,320,480);
18:
19:       olcek=40.0;                    /* Ölçek değiştirilerek zoom yapılabilir.  */
20:
21:       setcolor(YELLOW);              /* Fonksiyonun rengi sarı                  */
22:
23:       for(X=-20.0;X<=20;X+=0.01){    /* X değerleri [-20,20] aralığında         */
24:           Y=sin(X);                  /* sin(x) fonksiyonu                       */
25:           x=320+X*olcek;             /* Dönüşüm denklemleri                     */
26:           y=240-Y*olcek;            
27:           line(x,y,x,y);             /* Fonksiyon çiziliyor...                  */
28:        }
29:
30:    getchar();
31:    closegraph();
32:    return 0;
33:  }
 
 
 
 

0 Yorum:
Yorum Gönder