• Web sitemizin içeriğine ve tüm hizmetlerimize erişim sağlamak için Web sitemize kayıt olmalı ya da giriş yapmalısınız. Web sitemize üye olmak tamamen ücretsizdir.
  • Sohbetokey.com ile canlı okey oynamaya ne dersin? Hem sohbet et, hem mobil okey oyna!
  • Soru mu? Sorun mu? ''Bir Sorum Var?'' sistemimiz aktiftir. Paylaşın beraber çözüm üretelim.

C de grafik

Üyelik Tarihi
7 Ocak 2015
Konular
4,091
Mesajlar
4,274
MFC Puanı
40
Kod:
Bu dökümanda sizlere c de grafik kütüphanesini nasıl ekleyecegimizi ve ilgili fonksiyonları anlatmaya calısacagım.
Derleyici olarak Turbo C++ derleyicisini kullandım..

C de grafik fonksiyonları kullanabilmemiz için graphics.h kütüphanesi eklememiz gerekmektedir.

Turbo C++ derleyicisinde zaten bulunmakta fakat aktif durumda degildir.Bunu aktif hale getirmek için iki yol var.Brincisi komut satırına C:\\TCLIB>tlib cs +graphics.lib ikincisi ise turbo c++ menüsünden options>linker>libraries secerek acılan pencerede Graphics library kutucugunu işaretlemek olacaktır.
--------------------------------------------------------------------------------------


**Mevcut olan bazı fonksiyonlar.**

arc() Fonksiyonu
**** arc(int,int,int,int,int); //Ekrana yay çizdirmek için kullanılır

bar() Fonksiyonu 
**** bar(int,int,int,int); //Ekrana bar çizdirmek için kullanılır

circle() Fonksiyonu
**** circle(int,int,int); //Ekrana daire çizer

drawpoly() Fonksiyonu 
**** drawpoly(int,int *); //Ekrana cokgen çizer

getmaxx() Fonksiyonu
int getmaxx(); //Kulanılan modda en yüksek çözünürlüğün x degerini verir

getmxy() Fonksiyonu
int getmaxy(); //Kullanılan modda en yüksek çözünürlüğün y degerini verir

line() Fonksiyonu
**** line(int,int,int,int); //Ekrana düz çizgi çizer.

graphresult() Fonksiyonu
int graphresult(); //Ekrana hata mesajı verir.

initgraph() Fonksiyonu
**** initgraph(int*int*char*); //Grafik modunu hazırlamak için kullanılır..

rectangle() Fonksiyonu 
**** rectangle(int,int,int,int); //Ekrana dikdörtgen çizer

Grafik kütüphanesinde bunun benzeri bircok fonksiyon bulunmaktadır.Derleyicinin yardım kısmında grafik kütüphanesiyle ilğili bircok fonksiyona ulasabilirsiniz.

İlk önce basit bi program yazalım ve grafik modunun temel kullanımını ögrenelim.



Kod:
#include<stdio.h>
1 #include<graphics.h>
2 #include<conio.h>
3 #include<process.h>

4 int main(){

5 int driver,mode;
6 int errcode=0;
7 driver=DETECT;

8 initgraph(&driver,&mode,"C:\\TC\\BGI");
9 errcode=graphresult();

10 if(errcode!=0){//hata varmi kontrol et
11 printf("graph error:%d",errcode);
12 exit(1); //hata ile cik
13 }

14 line(0,40,200,40); //yatay cizgi ciz
15 getch();
16 closegraph();
17 return 0;
18 }
Bu program ekrana yatay çizgi çizmemizi sağlayacaktır.


Şimdi çalışma mantıgınmı acıklamaya calısacagım. Burdaki en önemli fonksiyonumuz initgraph fonksiyonudur. Bu fonksiyon grafik modunu hazırlar.Bu fonksiyon üç parametre alır
1. Kullanılan ekran kartı adresi
2.Mod numarasını tutacak adres
3.Ekran kartı dosyasının bilgisayardaki yer.("C:\\TC\\BGI")

Yedinci satırda initgraph fonksiyonuna gönderdigimiz DETECT parmetresi derleyicinin caslıma anında maksimum çözünürlükte caslımasını saglar.
Dokuzuncu satırda kullandıgımız graphresult() fonksiyonu initgraph() caslıması sonrasında hata olup olmadıgını denetler 0 döndürürse hata yoktur 0 dan farklı degerler hata anlamına gelir.

Ondördüncü satırda kullandıgımız line() fonksiyonu yukarda belirttigimiz gibi düz çizği cizmeye yarar.
Onaltıncı satırdaki closegraph() fonksiyonu grafik modunu kapatmak için kullanılır.

Simdide daire cizen programımızı yazalım.
Kod:
#include<stdio.h> 
#include<graphics.h> 
#include<conio.h> 
#include<process.h>

int main(){

int driver,mode;
int errcode=0;
driver=DETECT;

initgraph(&driver,&mode,"C:\\TC\\BGI");
errcode=graphresult();
if(errcode!=0){ //hata varmi kontrol et
printf("graph error:%d",errcode);
exit(1); //hata ile cik
}

circle(320,240,10*20);

getch();
closegraph();
return 0;
}
Yukarda verdigim fonksiyonları kullanrak sizde daha farklı programlar yazabilirsiniz zaten kalıp aynı önemli olan fonksiyonları kullanmak..
 
Üst