Her Yönüyle C
Would you like to react to this message? Create an account in a few clicks or log in to continue.
Her Yönüyle C

Hepsi Burada
 
AnasayfaAnasayfa  PortalliPortalli  GaleriGaleri  AramaArama  Latest imagesLatest images  Kayıt OlKayıt Ol  Giriş yapGiriş yap  

 

 C DE GRAFİK

Aşağa gitmek 
YazarMesaj
Admin
Admin
Admin


Erkek
Mesaj Sayısı : 804
Yaş : 35
Location : KoCaElİ
Kayıt tarihi : 29/10/07

Character sheet
Field:
C DE GRAFİK Left_bar_bleue100/100C DE GRAFİK Empty_bar_bleue  (100/100)

C DE GRAFİK Empty
MesajKonu: C DE GRAFİK   C DE GRAFİK Icon_minitimePtsi Kas. 12, 2007 2:19 am

GirişBu kısımda sadece Turbo C derleyicisine ait basit grafik uygulamaları kısaca anlatılmıştır. Örneklerde verilen grafik fonksiyonları ANSI C de bulunmamaktadır. Bu yüzden bir çok C derleyicisi, kendi bünyesinde farklı grafik fonksiyonlarına sahiptir. Örneğin Linux ortamındaki grafik kullanmak için g2 kütüphanesi geliştirilmiştir.

Grafik Ekranına GeçişTurbo C'de, Grafik sistemine geçmek için, initgraph() fonksiyonunu kullanılır. Bütün ç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>
#include <stdlib>
...
int surucu=DETECT,grmod,hata_kodu; /* DETECT grafik sürücüsünü otomatik seçer */
.
.
.
initgraph(&surucu,&grmod,""); /* grafik ekranını başlat */

hata_kodu = graphresult(); /* hata_kodu al */
if (hata_kodu != grOk) /* hata_kodu 0 dan farklı ise başlatma */
{
puts("Hata olustu.");
puts("Grafik ekrani baslatilamiyor.");
exit(1);
}
.
. /* grafik işlemleri ... */
.
closegraph(); /* grafik ekranını kapat */

şeklindedir.





NOT
initgraph fonksiyonundaki 3. parametre ("") boş bırakıldığında kaynak dosyanın C:\TC> dizininde olması zorunludur.
Eğer kaynak dosya başka bir dizinin altında ise o zaman initgraph(&surucu,&grmod,"C:\\TC"); şeklinde kullanılmalıdır.
Turbo C'de varsayılan grafik modu (640,480) çözünürlüğe ayarlanmıştır. Bu modda, Çizim ekrenının sol-üst köşesine ait koordinat (0,0) olarak tanımlıdır. Varsayılan moddaki bazı koordinatlar Şekil 19.1'de gösterilmiştir.
C DE GRAFİK Grafik-ekrani
Şekil 19.1
: Turbo C varsayılan moddaki koordinatlar

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 fonksiyon vardır. Bu fonksiyonlar derleyicinin başvuru kitabından veya derleyicinin yardım kısmından öğrenilebilir.

Tablo 19.1: graphics.h'te tanımlı bazı grafik fonksiyonları



Fonksiyon
Açıklama

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(*katar);
Grafik ekranında katar yazdırır.

outtextxy(x,y,*katar);
Grafik ekranında yazılacak katar'ı, (x,y) ile belirlenen noktadan başlayarak yazar.

settextstyle(font,yön,boyut);
Ekranda yazılacak olan bir katarın yazıtipini, yönünü ve boyutunu belirler. yön=0 ise yatay, yön=1 ise dikey yazar.

cleardevice();
Ekranı temizler. DOS'taki CLS komutu gibi.

closegraph();
Grafik ekranını kapatıp normal yazı ekranına (DOS ekranı) döner.
Renk Kodları

Grafik ekranında kullanılan renkler 0-15 arasında renk kodları, yada simgesel sabit karşılıkları ile tanımlıdır. Bu tanımlamaların tamamı graphics.h'de şöyle bildirilmiştir (bkz graphics.h): enum COLORS {
BLACK, /* koyu renkler */
BLUE,
GREEN,
CYAN,
RED,
MAGENTA,
BROWN,
LIGHTGRAY,
DARKGRAY,
LIGHTBLUE, /* açık renkler */
LIGHTGREEN,
LIGHTCYAN,
LIGHTRED,
LIGHTMAGENTA,
YELLOW,
WHITE
};
Ayrıca bu kodları liste halinde Tablo 19.2 de bulabilirsiniz.

Tablo 19.2: conio.h ve graphics.h'te tanımlı Standart CGA Video Renk Kodları



Renk (TR)
Renk (EN)
Renk
Örneği

Renk Kodu

Siyah
BLACK

0

Mavi
BLUE

1

Yeşil
GREEN

2

?
CYAN

3

Kırmızı
RED

4

Menekşe
MAGENTA

5

Kahverengi
BROWN

6

Açık Gri
LIGHTGRAY

7

Koyu Gri
DARKGRAY

8

Açık Mavi
LIGHTBLUE

9

Açık Yeşil
LIGHTGREEN

10

Açık ?
LIGHTCYAN

11

Açık Kırmızı
LIGHTRED

12

Açık Menekşe
LIGHTMAGENTA

13

Sarı
YELLOW

14

Beyaz
WHITE

15
Örnekler





NOT
Buradaki örnek programlar Turbo C'nin editör ortamında derlenmiştir.

Program 19.1: Grafik ekranında; bir çizgi, bir çember, bir yay, bir dikdörtgen ve bir elips çizer




[color=gray] 1:
/* 19prg01.c:
[color=gray] 2:
Çizim ekranında bir çizgi, bir çember,
3: bir yay, bir dikdörtgen ve bir elips çizer.
[color:484e=gray:484e] 4: */
5:
6: #include <stdio>
7: #include <graphics>
8:
9: main()
10: {
11: int sur=DETECT,gmod;
12:
13: initgraph(&sur,&gmod,""); /* grafik ekranını başlat */
14:
15: line(12,12,298,198);
16: circle(200,100,75);
17: arc(200,100,90,180,50);
18: rectangle(10,10,300,200);
19: ellipse(320,240,0,180,50,70);
20:
21: getchar();
22: closegraph(); /* grafik ekranını kapat */
[color:484e=gray:484e]23: }
Program çıktısı
C DE GRAFİK Gr1



Program 19.2: outtext, outtextxy, setcolor, settextstyle, setlinestyle fonksiyonları




[color=gray] 1:
/* 19prg02.c:
[color=gray] 2:
Bu program ekranda yatay ve dikey iki yazı yazar ve
3: farklı kalınlıkta iki çizgi çizer.
[color:484e=gray:484e] 4: */
5:
6: #include <graphics>
7: #include <stdio>
8:
9: main()
10: {
11: int surucu=DETECT,mod;
12:
13: initgraph(&surucu,&mod,"C:\\TC");
14:
15: setcolor(3);
16: outtext("Merhaba C.");
17:
18: setcolor(10);
19: outtextxy(30,40,"Bu yazi YATAY");
20:
21: setcolor(YELLOW);
22: settextstyle(1,1,5);
23: outtextxy(50,60,"Bu yazi DIKEY");
24:
25: setcolor(WHITE);
26: setlinestyle(3,0,1);
27: line(320,240,500,350);
28:
29: setcolor(RED);
30: setlinestyle(1,1,3);
31: circle(320,240,100);
32:
33: getchar();
34: closegraph();
35: }
[color:484e=gray:484e]36: 
Program çıktısı
C DE GRAFİK Gr2



Program 19.3: y=f(x) ile belirlenen bir fonksiyonu çizer




[color=gray] 1:
/* 19prg03.c:
2: (-20,+20) aralığında y=5*sin(x) fonksiyonunun grafiğini çizer. */

3:
4: #include <graphics>
5: #include <stdio>
6: #include <math>
7:
8: main()
9: {
10: int sur=DETECT,grmode;
11: float x,y,olcek;
12: int X,Y;
13:
14: initgraph(&sur,&grmode,"C:\\TC");
15:
16: setcolor(BLUE); /* x-y coordinatları mavi */
17: line(0,240,640,240);
18: line(320,0,320,480);
19:
20: olcek=15.0; /* Ölçek değiştirilerek zoom yapılabilir. */
21:
22: setbkcolor(WHITE); /* zemin rengi beyaz */
23: setcolor(RED); /* Fonksiyonun rengi kırmızı */
24:
25: x=-20.0; /* x değerleri [-20,20] aralığında */
26: do
27: {
28: x += 0.01;
29: y = 5*sin(x); /* y=5*sin(x) fonksiyonu */
30: X = 320 + x*olcek; /* Lineer Dönüşüm denklemleri */
31: Y = 240 - y*olcek;
32: line(X,Y,X,Y); /* Fonksiyon çiziliyor... */
33:
34: }while(x<20.0);
35:
36: getchar();
37: closegraph();
[color:484e=gray:484e]38: }
Program çıktısı
C DE GRAFİK Gr3
Sayfa başına dön Aşağa gitmek
https://cprogramlama.yetkin-forum.com
 
C DE GRAFİK
Sayfa başına dön 
1 sayfadaki 1 sayfası

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
Her Yönüyle C :: C Programlama :: C Konu Anlatımları-
Buraya geçin: