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