Grafika Komputer : Aplikasi Baca File Informasi Data Gambar Persegi & Menggambarkannya pada Layar

9 12 2009

1. Buat aplikasi yang membaca sebuah file yang berisi informasi data gambar persegi, kemudian menggambarkan semua gambar dengan informasi tersebut dilayar.

Contoh:
Setiap line berisi <posisi x><spasi><posisi y><spasi><width><spasi><height>
Isi file file.txt:
60 100 200 500
150 300 500 500

Algoritma Program :

  1. Program melakukan inisialisasi allegro agar fungsi – fungsi dalam allegro dapat  digunakan.
  2. Program menginstall keyboard agar fungsi – fungsi keyboard dapat digunakan dan input keyboard dapat terdeteksi.
  3. Program mengeset mode grafik agar dapat menggambar grafik dan menampilkan sebuah jendela dengan ukuran 800 X 600 pixel.
  4. Program memanggil fungsi scan_file().
  5. Fungsi scan_file() menginstruksikan kepada user untuk memasukkan nama file yang akan diinputkan.
  6. Selama user belum menekan tombol ENTER fungsi scan_file() akan membaca setiap input yang berasal dari keyboard, ketika user mengetikkan nama file input dan langsung menampilkan apa yang diketikkan user pada jendela tersebut.
  7. Program menanyakan apakah nama file yang diinputkan benar. Jika user menekan tombol ‘n’, program akan membersikan jendela dan menginstruksikan user untuk memasukkan nama file yang akan diinputkan lagi.
  8. Sedangkan, Jika user menekan tombol ‘y’, program akan mencari file tesebut. Jika file tak ada program akan membersihkan jendela dan menampilkan statement <<File tidak dapat ditemukan>> yang berwarna putih. Kemudian jika setelah itu user menekan tombol, program akan dihentikan.
  9. Jika file ditemukan, program akan membaca tiap data yang berupa array 1 dimensi yang dipisahkan oleh spasi pada file tersebut.
  10. Program menutup file input.
  11. Program membersihkan jendela dengan warna putih.
  12. Selama user belum menekan tombol ESC, program akan menampilkan gambar persegi dengan posisi dan ukuran yang sesuai dengan indeks data pada file input yang berwarna R = 255, G = 100, B = 255 (merah muda) dengan selang waktu tiap index (persegi) 300 mili sekon.
  13. Jika user menekan tombol ESC jendela akan langsung ditutup.

Sorcecode Program :

#include <stdio.h>

#include <allegro.h>

char nama[20];

void scan_file();

int main(void)

{

FILE *data;

char ulang;

int x[10], y[10], width[10], height[10], index = 0, xx;

allegro_init();

install_keyboard();

set_gfx_mode(GFX_AUTODETECT_WINDOWED,800,600,0,0);

do{

scan_file();

textout_ex(screen, font, "Apakah anda yakin? (y/n)", \

100, 300, makecol(255,255,255), -1);

ulang = readkey()&0xff;

if(ulang=='n'||ulang=='N')

{

clear(screen);

}

}while(ulang=='N'||ulang=='n');

data = fopen(nama, "r");

if(data=='')

{

clear(screen);

textout_ex(screen, font, "<<File tidak dapat ditemukan>>", \

100, 300, makecol(255,255,255), -1);

readkey();

exit(1);

}

while(fscanf(data, "%d%d%d%d", &x[index], &y[index], &width[index],  &height[index])==4)

{

index++;

}

fclose(data);

clear_to_color(screen, makecol(255,255,255));

while(!key[KEY_ESC])

{

for(int rec=0;rec<=index-1;rec++)

{

rest(300);

rect(screen, x[rec], y[rec], x[rec]+width[rec], \

y[rec]+height[rec], makecol(255,100,255));

}

}

return 0;

}

END_OF_MAIN();

//======================scan_file() function========================//


void scan_file()

{

char baca;

int indx=0;

textout_ex(screen, font, "Masukkan nama file yang akan diinputkan > ", \

100, 200, makecol(255,255,255), -1);

while(!key[KEY_ENTER])

{

baca = readkey()&0xff;fflush(stdin);

nama[indx] = baca;

indx++;

textprintf_ex(screen, font,(indx*10)+100,230, makecol(255,255,255), -1, "%c", baca);

}

nama[indx-1] = '';

}

Tampilan Output Program :

Posted By : Evan Yofiyanto @ Evan’s Blog : Kuliah Informatika (kuliahinformatika.wordpress.com)

[FREAX]


Actions

Information

One response

18 03 2010
adegustiann

wah.. keren.. izin share ya..🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s




%d bloggers like this: