BİLİŞİM - BİLGİSAYAR - EĞİTİM
  C de Grafik Kodları
 

11. Grafik:

Basit grafik işlemleri nasıl gerçekleştirilir (sorumlu değiller).

Normal çalışma anında text ekranda (25, 80) boyutlarında.

* void textbackground(int newcolor); : alt zemin rengi

* void textcolor(int newcolor); : yazı rengi

* void textattr(int newattr); 8 bitlik sayı. hem alt zemin hem de yazı rengi

verilir Bbbbffff (B = blink)

* void highvideo(void); Yazı parlaklığı

* void lowvideo(void);

* void normvideo(void);

Bu işlevler doğrudan ekrana yazan deyimlere yöneliktir (cprintf, cput)

#include <conio.h>

main()

{

int i;

textbackground(BLACK);

clrscr();

for (i=0; i<=15;i++) {

textcolor(i);

cputs("HÜSEYİN PEKTAŞrn");

}

getch();

}

Grafik çizimi için bilgisayarın grafik modunda olması gerekir.

/*

* void far initgraph(int far *graphdriver, int far *graphmode, char far *pathtodriver);

Grafik sistemini verilen degerlere gore ayarlar. Grafik komutlarini kullanmadan once calistirilmalidir.

* closegraph; Grafik sistemini kapatir.

* graphresult: int; Grafik islemi ile ilgili bilgi verir.

* char *far grapherrormsg(int errorcode); Belirtilen grafik hatasi icin mesaji verir.

* line(x1, y1, x2, y2);

* lineto(x, y); Bulunulan yerden (x,y) ye kadar çizer

* linerel(x, y); Bulunulan yerin (x,y) ötesine kadar çizer

* moveto(x, y);

* void far cleardevice(void); Grafik ekranını siler

* circle(x, y , r);

* putpixel(x, y, renk);

* getpixel(x, y); Belirtilen noktanin piksel degerini verir

* getx; Bulunulan

* gety; noktalar

* getmaxx; Maksimum olabilecek

* getmaxy; noktalar

* outtext(char far *) : Bulunulan yere metni yazar

* outtextxy(x, y, char far *) : Belirtilen yere metni yazar

* int far getcolor(void); : çizim rengi öğren

* void far setcolor(int color); : çizim rengini değiştir

* int far getbkcolor(void); : alt zemin rengini öğren

· void far setbkcolor(int color);: alt zemin rengini değiştir

EGA_BLACK

EGA_BLUE

EGA_GREEN

EGA_CYAN

EGA_RED

EGA_MAGENTA

EGA_LIGHTGRAY

EGA_BROWN

0

1

2

3

4

5

7

20

EGA_DARKGRAY

EGA_LIGHTBLUE

EGA_LIGHTGREEN

EGA_LIGHTCYAN

EGA_LIGHTRED

EGA_LIGHTMAGENTA

EGA_YELLOW

EGA_WHITE

56

57

58

59

60

61

62

63

#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

main()

{

int gd, gm, hata;

int x, y;

gd = DETECT; /* ekran sürücüsünü otomatik tanı */

/* CGA, HERC, VGA..*/

initgraph(&gd, &gm, "c:dillertc3bgi");

/* gd gm

VGA ¦ VGALO ¦ 0 ¦ 640 x 200 ¦ 16 color¦ 2

9 ¦ VGAMED ¦ 1 ¦ 640 x 350 ¦ 16 color¦ 2

¦ VGAHI ¦ 2 ¦ 640 x 480 ¦ 16 color¦ 1

*/

hata = graphresult();

if (hata != grOk) /* grOk = 0 tanımlı */

{

printf("Grafik hatası: %sn", grapherrormsg(hata));

getch();

exit(1);

}

x = getmaxx();

y = getmaxy();

setbkcolor(EGA_RED);

setcolor(EGA_YELLOW);

cleardevice();

line(0, 0, 0, y);

line(0, y, x, y);

line(x, y, x, 0);

line(x, 0, 0, 0);

getch();

cleardevice();

moveto(50, 50);

lineto(50, 100);

lineto(100,100);

lineto(100,50);

lineto(50, 50);

getch();

closegraph();

}

Örnek 11.1: İşlev çizimi

#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <math.h>

double fonk(double x);

double fonk1(double x);

main()

{

int gd, gm, hata;

double x, y;

int orgx, orgy;

gd = DETECT;

initgraph(&gd, &gm, "c:dillertc3bgi");

hata = graphresult();

if (hata != grOk)

{

printf("Grafik hatası: %sn", grapherrormsg(hata));

getch();

exit(1);

}

orgx = 20;

orgy = getmaxy() / 2;

line(0, orgy, getmaxx(), orgy); /* x ekseni */

line(20, 0, 20, orgy+50); /* y ekseni */

outtextxy(getmaxx()-50, orgy-10, "Zaman");

outtextxy(22, 0, "Volt");

for (x = 0; x< 6.28; x = x + 0.005) {

y = fonk1(x);

putpixel(orgx + 80*x, orgy - y, 2); /* renk yeşil EGA_GREEN*/

/* - çünkü eksenin üzerinde çizsin */

}

getch();

closegraph();

}

double fonk(double x)

{

double y;

y = 100 * sin(10 * x);

return y;

}

double fonk1(double x)

{

double y;

y = 1 - exp(-x);

return 200*y;

}

 
 
  Bugün 32 ziyaretçi (36 klik) www.bilisim-egitim.tr.gg  
 
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol