Grafika Komputer part 08

•December 14, 2009 • Leave a Comment

Pasar Legi Minggu Pagi Enam April 2008

•December 14, 2009 • Leave a Comment

Suparmi : Weeee yu Jiyem, neng ngendi wae kok wis suwe ora ketok

Parjiyem : Eeeeeee Parmi tho iki, waduh soyo mundak ayu

Suparmi : yu Jiyem neng koran-koran kae wong-wong kok dho ngomong Linak Linuk ki opo tho kuwi. Terus jarene Linuk-i ono sing jenenge Usus Buntu, Kenthus, Susi, Genthoo, yo ? Nek sing jenenge Maling ono pora ?

Parjiyem : Lucu tenan kowe ki nduk. Ngene-ngene, saiki kowe nganggo komputer opo ?

Suparmi : Celeron yu.

Parjiyem : Operating System-e ?

Suparmi : 98.

Parjiyem : Ooooo Microsoft Windows 98 yo. Ngene Linux iku koyo 98 kuwi. Nah Linux kuwi sak jane mung bagian inti soko Sistem Operasi, jenenge Kernel. Tanggung jawabe kernel, yo iku nangani hubungan antarane hardware lan software. Nah koyo Word, Corel, Visual Basic lan liyo liyane sing marak ake gaweyan ndak rampung kae, dilakoake neng ndhuwure kernel mau. Kuwi jenenge distribusi, istilah londone Distro. Kan ngene Yem, aku karo kowe ki nduweni kesenengan dhewe-dhewe, wong liyo yo edo meneh tho. Lha distro kuwi mau akeh jenis-e. Jeneng-jeneng sing terkenal koyo tho Ubuntu, CentOs, Suse, Gentoo, sing koyo mbok kandake mau.

Suparmi : Piye  karepe kuwi ? Mbok sing rodo cetho tho yu.

Parjiyem : Kowe masak opo dino iki ?

Suparmi : Thengkleng yu.

Parjiyem : Nek aku oblok-oblok godong kates. Nha awake dhewe wae rak wis bedho tho. Lha menungso kuwi, pisan meneh yo bedo bedo. Contone nek ono uwong sing durung tau nganggo Linux, opo malah sing lagi wae kenalan karo komputer, rak dhewe-e nduwe pengare-arep nek komputer ki ora angel-angel nganggone. Lha nek sing model koyo kowe wis ahli, nganggo komputer karo masak wae kan wis iso. Nah apike Linux kuwi iso dienggo karo sing isih ajaran, lah sing wis ahli koyo kowe.

Suparmi  : Yu Jiyem-i ahli piye, buktine tokak-takok wae neng sampeyan. Oooo dadi tergantung wong-e yo yu yo.

Parjiyem : Lho wis mudheng tho, pinter tenan kowe cah ayu. Ngene Mi, misale kowe sekolah neng Gudang-e Pakar Komputer, alias mahasiswa komputer. Kowe rak pengin iso mudheng piye sih mlakune Sistem Operasi kuwi. Neng njerone kuwi piye nek ngonak-ngonok-ke. Lha wong sing koyo ngene iki apike iso nggawe Distro Linux dhewe. Ono proyek jenengen Linux From Scratch sing ngajari piye carane nggawe Distro Linux kuwi mau. Ono Distro Linux sing ngelayani koyo ngene iki yoan, jenegen Gentoo.

Suparmi : Yu aku rak ora anggota Gudang-e Pakar Komputer, aku ki Pakare Gudang Komputer, alias mung tukang resik-resik gudang. Mosok yo nganggo sing angel-angel ?

Parjiyem : Nek kanggo sing ngaku ora ahli utowo lagi anyaran, ono Distro-Distro sing wis nganggo GUI koyo 98-mu. Dadi mung kari ngeklak karo ngeklik. O iya, garis besar-e sakjane Linux iku iso digolongke nganggo Package Management sing didukung. Package Manager ki podo karo setup neng sing kanggo nginstall 98 kae lho. Sing mandegani ono loro. Package deb lan rpm. Deb iku singkatan soko Debian lan rpm iku RedHat Package Manager. Akeh-akehe Distro Linux ki melu cah loro kuwi mau. Nek Deb bolone Ubuntu, Freespire, Debian dhewe. Rpm bolone RedHat, Mandriva, Suse. Nek kowe pengin iso enak nginstal nganggoo koyo Ubuntu, Fedora, Debian lal liyo liyane, tapi ora iso kanggo nglakokake mp3, quicktime lan liyo liyane.

Suparmi : Lho nggak gaul dong Yu ?

Parjiyem : Lho kowe iso bahasa Indonesia tho. Ngene carane kowe donlot wae codec terus mbok install wae nek linux-mu. Contone aku nganggo mplayer kanggo mp3-ku.

Suparmi : Yu ono ra Linux sing nek diinstall langsung iso nganggo mp3 ?

Parjiyem : Yo ono thoooo. Contone Linspire lan Xandros, tapi kow kudu tuku.

Suparmi : Nek aku ameh nganggo Linux nggo server piye yu ?

Parjiyem : Yen kowe ameh nganggo Linux sing server, lha kuwi arti tampilane dadi ora patek apik, boso komputere GUI-ne dadi ora kanggo. Apik-e kowe nganggo Debian wae. Debian ki ngusahake banget neng keamanan lah nenggone sing dho nganggo Linux akeh dhew sing nganggo. Tapi kowe yo iso njajal RedHat utowo Suse yoan. Terus meneh yen Debian kuwi Distro sing iso dienggo neng kompuer liyane x86/IA32, koyo tho Intel 64 bit, AMD 64 bit lan Power PC, lagian Debian kuwi ora diduweki karo organisasi opo wae, alias ora ono sing nduweni. Dheweke uripe soko sumbangan lan uwong-uwong sing gelem ngewangi jiwo lan rogo wae.

Suparmi : Lha yu, neng nggo naku ki isih akeh komputer sing nganggo memory mung 32 mega ki terus ora iso no nganggo Linux ?!

Parjiyem : Ono kok Distro sing khusus kanggo komputer-komputer sing memori-ne cuwiluik, yo kuwi Damn Small Linux, liyane ono sing jenenge Puppy Linux. Malahan Damn Small Linux ki ukurane neng harddisk iku mung 50 mega.

Suparmi : Mosok tho yu ?!! Waduh tambah penasaran aku, dadi pengen nyoba sing kuwi mau.

Parjiyem : Lho sing luuuuuuwih cuilik maneh ono, iso dilakok-ake mung nganggo disktet, jenenge TOMSRTBT. Iso dienggo nggolek-i masalah neng komputer barang.

Suparmi : Kok iso akeh tur macem-macem yo yu ?

Parjiyem : Amargo Linux ki kode program-e oleh diduweni karo sopo wae. Nek sak umpomo ora ngono yo sopo sing ameh ndukung. Nek dijumblah kabeh ono atusan kok.

Suparmi : Lho yu lha nek sing pothet-pothet nganggone Linux opo ?

Parjiyem : Weh weh weh, lagi wae krungu wis langsung pengin dadi pothet. Biasane Slackware utowo Gentoo, sing disenengi sing dho pothet kae. Slackware kuwi formate bedo, jenenge TGZ. Akeh yoan sing seneng karo Slack ware nanging distro iki oran cocok kanggone sing lagi mulai belajar.

Suparmi : Lha nek jumlah-e atusan kok yo ono sing ora kesuwur no yu ?

Parjiyem : Yo mesthi tho. Sakjane sing terkenal ki durung mesthi sing apik. Tapi coba bayangno ngene RedHat lan Novell ding nduwe Suse, kuwi perusahaan sing guwedhe buwanget. Duwite wah wis sak entek-enteke ongko duwe. Nah sing koyo ngono kuwi iso terkenal amargo iso mbayar iklan, ngeneke ijazah kanggo sing wis rodo iso. Ono Disto-distro sing terkenal amargo krentege sing sosial lan digratiske kowo howo sing awake dhewe nggo ambegan, koyo tho Debian lan Ubuntu. Dadi sakjane ora ono Distro sing iso diarani paling apik. Tergantung karo pengine sing nganggo piye ?

Suparmi : Wis mudheng aku saiki. Matur sembah nuwun yo yu. Bejo kemayangan pancen nduwe mbakyu pinter koyo sampeyan ki. Si Adi saiki wis kelas piro ?

Parjiyem : Si adi wis kelas 3 esde nek bayu teka nol gedhe. Lha kowe kapan ? Isih karo Agung ?

Suparmi : Wah it’s complicated kok yu. Agung ki wis masa lalu. Bar kuwi ono meneh kok yu.

Parjiyem : Sopo jenenge ? Cah ngendi ?

Suparmi : Tapi yo wis masa lalu kok yu.

Parjiyem : Tapi rak isih tho ?

Suparmi : Isih no yu !.

Parjiyem : Isih opo tho ?

Suparmi : Ha.. ha.. ha.. ha.. ha.. Wis yo yu selak dienteni iki. Suk mben disambung meneh yo. Maturnuwun tenan iki.

Parjiyem : Yo podo-podo.

Suparmi dan Parjiyem sudah pasti tokoh fiktif, mengambil panggung kejadian di pasar legi dengan harapan bahwa suatu hari memang akan terjadi obrolan berbau teknologi informasi di pasar induk terbesar di karesidenan surakarta.

diadaptasi dari sini

Sumber : Catatan Nanung Nur Zula di Facebook


Satu Rindu (Opick Feat Amanda)

•October 8, 2009 • Leave a Comment

Hujan teringatkan aku
Tentang satu rindu
Dimasa yang lalu
Saat mimpi masih indah bersamamu

Terbayang satu wajah
Penuh cinta penuh kasih
Terbayang satu wajah
Penuh dengan kehangatan
Kau ibu Oh ibu

Alloh izinkanlah aku
Bahagiakan dia
Meski dia telah jauh
Biarkanlah aku
Berarti untuk dirinya
oh ibu oh ibu kau ibu

Terbayang satu wajah
Penuh cinta penuh kasih
Terbayang satu wajah
Penuh dengan kehangatan
Kau ibu

Terbayang satu wajah
Penuh cinta penuh kasih
Terbayang satu wajah
Penuh dengan kehangatan
Kau ibu oh ibu kau ibu
oh ibu oh ibu

Hujan teringatkan aku
Tentang satu rindu
Dimasa yang lalu
Saat mimpi masih indah bersamamu
Kau ibu kau ibu kau ibu

**lagu ini ingin ku persambahkan untuk Ibuku tersayang
i miss yaou, MOM. @};-

Lowongan di Esoftdream.net

•October 7, 2009 • Leave a Comment

Saat ini Esoftdream membutuhkan secepatnya, PROGRAMMER WEB dengan kualifikasi :

  • Pria/wanita
  • Berdomisili di Yogya (Diutamakan)
  • Pendidikan S1 / semester akhir
  • Menguasai php
  • Menguasai mysql
  • Menguasai logika pemrograman
  • Mampu dengan cepat mempelajari teknik teknik pemrograman
  • Sanggup bekerja dalam team
  • Menguasai framework MVC / OOP dalam PHP adalah nilai tambah

Fasilitas :

  • Gaji Pokok
  • Gaji Mingguan
  • Bonus Project
  • Bonus Tahunan
  • Asuransi

Kirimkan lamaran beserta CV lengkap dan Portofolio (link website jika ada) dalam format PDF melalui email hrd[at]esoftdream[dot]net paling lambat 21 November 2009. Kandidat yang terpilih akan dihubungi melalui telpon.

source : esoftdream.net

I’ll Be There (Mariah carrey Ft Trey Lorenz)

•September 7, 2009 • Leave a Comment

You and I must make a pact
We must bring salvation back
Where there is love
I’ll be there
I’ll reach out my hand to you
I’ll have faith in all you do Just call my name
And I’ll be there

I’ll be there to comfort you
Build my world of dreams around you
I’m so glad that I found you
I’ll be there with a love that’s strong
I’ll be your strength I’ll keep holding on

Let me fill your heart with joy and laughter
Togetherness is all I’m after
Whenever you need me I’ll be there
I’ll be there to protect you
With an unselfish love
I’ll respect you Just call my name
And I’ll be there

I’ll be there to comfort you
Build my world of dreams around you
I’m so glad that I found you
I’ll be there with a love that’s strong
I’ll be your strength
I’ll keep holding on

If you should ever find someone new
I know she’d better be good to you
‘Cause if she doesn’t I’ll be there

I’ll be there
I’ll be there Just call my name
I’ll be there I’ll be there
I’ll be there Whenever you need me
I’ll be there

**suka banget ma ni lagu. Enjoy it 😀

Grafika Komputer part 08

•May 11, 2009 • 1 Comment

APLIKASI GRAFIKA KOMPUTER ‘MEDIA PLAYER’

Grafika komputer memainkan peranan penting dalam sistem multimedia. Yang dimaksud multimedia dalam konteks ini adalah program yang mampu menjalankan file-file dari berbagai bentuk, mulai dari format teks, sound, image, bahkan video. Untuk merancang multimedia, Borland C++ Builder telah menyediakan komponen khusus yaitu media player.

Scriptnya adalah sebagai berikut :

//————————————————————————–

#include <vcl.h> // pemanggilan library dari borland

#pragma hdrstop

#include “Unit1.h”

//————————————————————————–

#pragma package(smart_init)

#pragma resource “*.dfm”

TForm1 *Form1;

//————————————————————————–

__fastcall TForm1::TForm1(TComponent* Owner) // deklarasi dari form bernama TForm1

: TForm(Owner)

{

}

//————————————————————————–

void __fastcall TForm1::Button1Click(TObject *Sender) // fungsi apabila button ganti file diklik maka akan muncul

{

if (OpenDialog1->Execute()) // untuk membuka open file yang akan dibuka

MediaPlayer1->FileName=OpenDialog1->FileName; // Mlayer akan membuka file sesuai file yang dipilih di open dialog

MediaPlayer1->Open();

MediaPlayer1->Display=Panel1; // file video yang dibuka akan diputar di obyek panel1

RadioButton6->Enabled=True; // mengaktifkan radio button puter 2 kali

RadioButton7->Enabled=True; // mengaktifkan radio button puter 3 kali

RadioButton8->Enabled=True; // mengaktifkan radio button puter 4 kali

}

//————————————————————————–

void __fastcall TForm1::Button2Click(TObject *Sender) // fungsi button keluar

{

Close();

}

//————————————————————————–

void __fastcall TForm1::RadioButton6Click(TObject *Sender) // fungsi yang jika radio button AVI diklik

{

RadioButton7->Enabled=False; // menon-aktifkan radio button puter 3 kali

RadioButton8->Enabled=False; // menon-aktifkan radio button puter 4 kali

MediaPlayer1->Stop(); // mplayer tidak bekerja

MediaPlayer1->Wait=True; // mplayer dalam keadaan standby

MediaPlayer1->Play(); // mplayer memainkan file

MediaPlayer1->Wait=True; // mplayer dalam keadaan standby

MediaPlayer1->Play(); // mplayer memainkan file

RadioButton6->Enabled=True; // mengaktifkan radio button puter 2 kali

RadioButton7->Enabled=True; // mengaktifkan radio button puter 3 kali

RadioButton8->Enabled=True; // mengaktifkan radio button puter 4 kali

RadioButton6->Enabled=False; // // menon-aktifkan radio button puter 2 kali

RadioButton7->Enabled=False; // menon-aktifkan radio button puter 3 kali

RadioButton8->Enabled=False; // menon-aktifkan radio button puter 4 kali

}

//————————————————————————–

void __fastcall TForm1::RadioButton7Click(TObject *Sender)

{

RadioButton6->Enabled=False;

RadioButton8->Enabled=False;

MediaPlayer1->Stop();

MediaPlayer1->Wait=True;

MediaPlayer1->Play();

MediaPlayer1->Wait=True;

MediaPlayer1->Play();

MediaPlayer1->Wait=True;

MediaPlayer1->Play();

RadioButton6->Enabled=True;

RadioButton7->Enabled=True;

RadioButton8->Enabled=True;

RadioButton6->Enabled=False;

RadioButton7->Enabled=False;

RadioButton8->Enabled=False;

}

//————————————————————————–

void __fastcall TForm1::RadioButton8Click(TObject *Sender)

{

RadioButton6->Enabled=False;

RadioButton7->Enabled=False;

MediaPlayer1->Stop();

MediaPlayer1->Wait=True;

MediaPlayer1->Play();

MediaPlayer1->Wait=True;

MediaPlayer1->Play();

MediaPlayer1->Wait=True;

MediaPlayer1->Play();

MediaPlayer1->Wait=True;

MediaPlayer1->Play();

RadioButton6->Enabled=True;

RadioButton7->Enabled=True;

RadioButton8->Enabled=True;

RadioButton6->Enabled=False;

RadioButton7->Enabled=False;

RadioButton8->Enabled=False;

}

//————————————————————————–

void __fastcall TForm1::RadioButton1Click(TObject *Sender)

{

OpenDialog1->FileName=””;

OpenDialog1->Filter=”Audio Video(*.avi)|*.avi”;

if (OpenDialog1->Execute())

MediaPlayer1->Close();

Button1->Enabled=True;

MediaPlayer1->DeviceType=dtAVIVideo;

MediaPlayer1->FileName=OpenDialog1->FileName;

MediaPlayer1->Open();

Panel4->Caption=”Gambar Yang bagus”;

MediaPlayer1->Display=Panel1;

Panel3->Caption=OpenDialog1->FileName;

RadioButton6->Enabled=True;

RadioButton7->Enabled=True;

RadioButton8->Enabled=True;

RadioButton6->Checked=False;

RadioButton7->Checked=False;

RadioButton8->Checked=False;

}

//————————————————————————–

void __fastcall TForm1::RadioButton2Click(TObject *Sender)

{

OpenDialog1->FileName=””;

OpenDialog1->Filter=”WAV Audio Files (*.wav)|*.wav”;

if (OpenDialog1->Execute())

MediaPlayer1->Close();

Button1->Enabled=True;

MediaPlayer1->DeviceType=dtWaveAudio;

MediaPlayer1->FileName=OpenDialog1->FileName;

MediaPlayer1->Open();

Panel4->Caption=”Maaf tidak ada gambar”;

MediaPlayer1->Display=Panel1;

Panel3->Caption=OpenDialog1->FileName;

RadioButton6->Enabled=True;

RadioButton7->Enabled=True;

RadioButton8->Enabled=True;

RadioButton6->Checked=False;

RadioButton7->Checked=False;

RadioButton8->Checked=False;

}

//————————————————————————–

void __fastcall TForm1::RadioButton3Click(TObject *Sender)

{

OpenDialog1->FileName=””;

OpenDialog1->Filter=”Midi Files(*.midi)|*.midi”;

if (OpenDialog1->Execute())

MediaPlayer1->Close();

Button1->Enabled=True;

MediaPlayer1->DeviceType=dtSequencer;

MediaPlayer1->FileName=OpenDialog1->FileName;

MediaPlayer1->Open();

Panel4->Caption=”Maaf tidak ada gambar”;

MediaPlayer1->Display=Panel1;

Panel3->Caption=OpenDialog1->FileName;

RadioButton6->Enabled=True;

RadioButton7->Enabled=True;

RadioButton8->Enabled=True;

RadioButton6->Checked=False;

RadioButton7->Checked=False;

RadioButton8->Checked=False;

}

//————————————————————————–

void __fastcall TForm1::RadioButton4Click(TObject *Sender)

{

MediaPlayer1->Close();

Button1->Enabled=True;

MediaPlayer1->DeviceType=dtCDAudio;

MediaPlayer1->FileName=EmptyStr;

MediaPlayer1->Open();

Panel4->Caption=”Maaf, Tidak ada gambar”;

MediaPlayer1->Display=Panel1;

Panel3->Caption=”CD Audio”;

RadioButton6->Enabled=True;

RadioButton7->Enabled=True;

RadioButton8->Enabled=True;

RadioButton6->Checked=False;

RadioButton7->Checked=False;

RadioButton8->Checked=False;

}

//————————————————————————–

outputnya:

multimediamultimedia1

Grafika Komputer part 7

•May 11, 2009 • Leave a Comment

RENDERING

Rendering (pengecatan) adalah sebuah cara dalam grafika computer untuk membuat pemandangan nampak ‘nyata’ atau visualisasi objek 3D menjadi riil. Untuk rendering objek 3D, ada beberapa factor yang mempengaruhi, diantaranya factor cahaya, sifat/karakteristik bahan, posisi kamera dan lain-lain. Suatu citra yang mengalami proses rendering yang baik akan menghasilkan gambar hasil akhir. Sedangkan tanpa rendering tidak akan menghasilkan gambar.

Proses rendering dapat dilakukan dengan beberapa cara, yaitu : lighting dan texturing.

LIGHTING

Lighting atau pencahayaan merupakan suatu metode yang dapat kita terapkan pada proses rendering untuk menjadikan sebuah objek menjadi terlihat berbeda. Untuk memperlihatkan bahwa lighting atau pencahayaan akan mempengaruhi pandangan terhadap sebuah objek.

Dalam proses rendering , lighting dipengaruhi oleh factor-faktor sebagai berikut :

1.jarak objek dengan sumber cahaya,

2.posisi objek,

3.bentuk permukaan objek.

Untuk memahami dasar-dasar lighting kita mulai dengan memperkenalkan model bayangan.

1.MODEL BAYANGAN

Sebuah objek akan memberikan sifat yang berbeda pada saat dikenai cahaya. Ada yang memantulkan, membiaskan ataupun menyerap cahaya. Selain itu, ada objek yang apabila dikenai cahaya maka akan menimbulkan bayangan. Terdapat dua cara pemberian bayangan pada proses rendering :

1)Bayangan rata (flat shading)

Pemberian bayangan rata (flat) merupakan cara termudah untuk dibuat. Bayangan rata mempunyai karakteristik sebagai berikut :

Pemberian tone yang sama untuk setiap polygon.

Penghitungan jumlah cahaya mulai dari titik tunggal pada permukaan.

Penggunaan satu normal untuk seluruh permukaan.

Pemberian bayangan rata ini mengasumsikan bahwa setiap muka polygon dari sebuah objek adalah rata dan semua titik pada permukaan mempunyai jarak yang sama dengan sumber cahaya.

2)Bayangan halus (smooth shading)

Cara ini mengijinkan kita untuk membuat perubahan setahap demi setahap dalam pemberian bayangan pada sebuahnpermukaan. Cara ini juga mengijinkan pemberian bayangan pada satu muka lebih pudar dibandingkan muka yang lain. Ini akan menghasilkan permukaan yang lebih halus.

Bayangan tinbul disebabkan oleh adanya sumber cahaya. Di sekitar kita banyak didapati pelbagai sumber cahaya, contohnya : cahaya matahari, neon, lampu pijar dan lain sebagainya. Jenis cahaya dari pelbagai sumber cahaya sering diasumsikan dan dimodelkan dengan cahaya titik dan cahaya lingkungan. Dengan dua jenis cahaya ini memudahkan pembuatan model bayangan dan pantulan.

Program

//——————————————————————-

#include // deklarasi library dari builder

#pragma hdrstop

#include “Unit1.h”

//——————————————————————-

#pragma package(smart_init)

#pragma resource “*.dfm”

TForm1 *Form1;

//——————————————————————-

__fastcall TForm1::TForm1(TComponent* Owner) // deklarasi form

: TForm(Owner)

{

}

//——————————————————————-

Graphics::TBitmap* pix = new Graphics::TBitmap(); // obyek baru bernama pix menggunakan komponen bmp

RGBTRIPLE* t; //RGBTRIPLE merupakan komponen TBitmap dengan inisialisasi t

int cycle = 0;

int step;

bool stop = false;

//—————————————————-

void renderBMP(Graphics::TBitmap* picture) //proses rendering dengan fungsi renderBMP

{

Form1->Canvas->Draw(0, 0, pix); //menggunakan form1 maka besar gambar akan memenuhi form yang dipake

}

//—————————————————

void bmpAlter(Graphics::TBitmap* picture) //proses alter

{

stop = false;

Form1->Button4->Caption = “Stop”; //jika alter dipencet atau dijalankan maka button 4(button stop) captionnya kaan berubah

while (!stop)

{

for (step = 0; step < 256; step++) //jumlah warna 256

{

if (stop) break; //proses berhenti sejenak unutk proses pembacaan dimulai lagi

for (int y = 0; y < pix->Height; y++) //saat berhenti sejenak makan y menjadi 0

{

t = (RGBTRIPLE*)picture->ScanLine[y]; // scan garis yang terbuat dari titik2

for (int x = 0; x < pix->Width; x++)

{

t->rgbtRed++; //tambah warna merah saat proses alter

t->rgbtGreen–;//kurangi warna hijau

t->rgbtBlue++;//kurangi warna biru

t++;

}

}

Form1->Canvas->Draw(0, 0, pix);

cycle++; // nilai cycle ditambah secara otomatis

if (cycle > 255) cycle = cycle -256;

Form1->Edit1->Text = cycle;

Application->ProcessMessages();

}

}

}

void __fastcall TForm1::Button1Click(TObject *Sender)

{

if (OpenPictureDialog1->Execute() )

pix->LoadFromFile(OpenPictureDialog1->FileName); //memilih sebuah file dari openpicturedialog

}

//——————————————————————-

void __fastcall TForm1::Button2Click(TObject *Sender)

{

renderBMP(pix); //memanggil fungsi randerbmp-> menempatkan gambar pada form 1

}

//——————————————————————-

void __fastcall TForm1::Button3Click(TObject *Sender)

{

bmpAlter(pix); //memanggil fungsi bmpAlter();

}

//——————————————————————-

void __fastcall TForm1::Button4Click(TObject *Sender)

{

stop = !stop;

if (stop) {

Button4->Caption = “Start”; //merubah caption button stop mjd star

}

else {

Button4->Caption = “Stop”;//merubah caption button stop

bmpAlter(pix);

}

Application->ProcessMessages();

}

//——————————————————————-

void __fastcall TForm1::Edit1Change(TObject *Sender)

{

cycle = 0;

Form1->Edit1->Text = cycle; //jika adatext yang bisa dibaca maka akan berubah jika tidak ada maka defaultnya 0

}

//——————————————————————-

void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)

{

delete pix; //agar gambar tidak tertinggal didalam program.

}

Outputnya:

render

render3

Grafika Komputer Part 6

•April 30, 2009 • Leave a Comment

Transformasi objek 3D merupakan perluasan dan teknik. Sebagaimana dalam transformasi 2D, sembarang transformasi dapat disajikan ke dalam suatu matrik transformasi dan transformasi yang lebih rumit dapat dinyatakan oleh sebuah matrik transformasi yang merupakan gabungan dari matrik-matrik transformasi dasar yang ada. Dengan M adalah matrik 3×3.

Contoh program :

Script

//——————————————————————-

#include <vcl.h>

#pragma hdrstop

#include <math.h>

#include “Unit1.h”

//——————————————————————-

#pragma package(smart_init)

#pragma resource “*.dfm”

TForm1 *Form1;

struct Elemen { float x,y ;} ;

Elemen Objek[17];

//——————————————————————-

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//——————————————————————-

void __fastcall TForm1::FormShow(TObject *Sender)

{

int i;

Image1->Canvas->Rectangle(0,0,Image1->Width,Image1->Height);

Image1->Canvas->MoveTo(Objek[4].x,Objek[4].y);

for (i=1;i<=4;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};

Image1->Canvas->MoveTo(Objek[8].x,Objek[8].y);

for (i=5;i<=8;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};

Image1->Canvas->MoveTo(Objek[10].x,Objek[10].y);

for (i=9;i<=10;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};

Image1->Canvas->MoveTo(Objek[12].x,Objek[12].y);

for (i=11;i<=12;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};

Image1->Canvas->MoveTo(Objek[14].x,Objek[14].y);

for (i=13;i<=14;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};

Image1->Canvas->MoveTo(Objek[16].x,Objek[16].y);

for (i=15;i<=16;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};

}

//——————————————————————-

void __fastcall TForm1::FormActivate(TObject *Sender)

{

Objek[1].x = 100;    Objek[1].y = 50;

Objek[2].x = 50;     Objek[2].y = 50;

Objek[3].x = 50;     Objek[3].y = 100;

Objek[4].x = 100;    Objek[4].y = 100;

Objek[5].x = 125;    Objek[5].y = 125;

Objek[6].x = 75;     Objek[6].y = 125;

Objek[7].x = 75;     Objek[7].y = 175;

Objek[8].x = 125;    Objek[8].y = 175;

Objek[9].x = 100;    Objek[9].y = 100;

Objek[10].x = 125;   Objek[10].y = 175;

Objek[11].x = 50;    Objek[11].y = 100;

Objek[12].x = 75;    Objek[12].y = 175;

Objek[13].x = 50;    Objek[13].y = 50;

Objek[14].x = 75;    Objek[14].y = 125;

Objek[15].x = 100;    Objek[15].y = 50;

Objek[16].x = 125;    Objek[16].y = 125;

FormShow(Sender);

}

//——————————————————————-

void __fastcall TForm1::Button1Click(TObject *Sender)

{

int i;

for (i=1;i<=16;i++){ Objek[i].y-=5;};

FormShow(Sender);

}

//——————————————————————-

void __fastcall TForm1::Button3Click(TObject *Sender)

{

int i;

for (i=1;i<=16;i++){ Objek[i].x-=5;};

FormShow(Sender);

}

//——————————————————————-

void __fastcall TForm1::Button4Click(TObject *Sender)

{

int i;

for (i=1;i<=16;i++){ Objek[i].x+=5;};

FormShow(Sender);

}

//——————————————————————-

void __fastcall TForm1::Button2Click(TObject *Sender)

{

int i;

for (i=1;i<=16;i++){ Objek[i].y+=5;};

FormShow(Sender);

}

//——————————————————————-

void __fastcall TForm1::Button9Click(TObject *Sender)

{

int i;

for (i=1;i<=16;i++)

{  Objek[i].y*=2;

Objek[i].x*=2;

};

FormShow(Sender);

}

//——————————————————————-

void __fastcall TForm1::Button10Click(TObject *Sender)

{

int i;

for (i=1;i<=16;i++)

{

Objek[i].y/=2;

Objek[i].x/=2;

};

FormShow(Sender);

}

//——————————————————————-

void __fastcall TForm1::Button5Click(TObject *Sender)

{

Elemen TempObjek[17];

int i; float Sdt;

for (i=1;i<=16;i++)

{

Objek[i].x=Objek[i].x-Image1->Width / 2;

Objek[i].y=Objek[i].y-Image1->Height / 2;

Sdt=10*M_PI/180;

TempObjek[i].x=(Objek[i].x*cos(Sdt)-Objek[i].y*sin(Sdt));

TempObjek[i].y=(Objek[i].x*sin(Sdt)+Objek[i].y*cos(Sdt));

Objek[i]=TempObjek[i];

Objek[i].x=Objek[i].x+Image1->Width / 2;

Objek[i].y=Objek[i].y+Image1->Height / 2;

}

FormShow(Sender);

}

//——————————————————————-

void __fastcall TForm1::Button6Click(TObject *Sender)

{

Elemen TempObjek[17];

int i,n,m; float Sdt;

for (i=1;i<=16;i++)

{

n = Objek[3].x;

m = Objek[3].y;

Objek[i].x=Objek[i].x-n;

Objek[i].y=Objek[i].y-m;

Sdt=10*M_PI/180;

TempObjek[i].x=(Objek[i].x*cos(Sdt)-Objek[i].y*sin(Sdt));

TempObjek[i].y=(Objek[i].x*sin(Sdt)+Objek[i].y*cos(Sdt));

Objek[i]=TempObjek[i];

Objek[i].x=Objek[i].x+n;

Objek[i].y=Objek[i].y+m;

}

FormShow(Sender);

}

//——————————————————————-

void __fastcall TForm1::Button7Click(TObject *Sender)

{

FormActivate(Sender);

}

//——————————————————————-

void __fastcall TForm1::Button8Click(TObject *Sender)

{

Close();

}

Output

modul6-part1

Tugas Praktikum

Program transformasi 3 Dimensi dengan obyek Segitiga. Script

//——————————————————————-

#include <vcl.h>

#pragma hdrstop

#include <math.h>

#include “Unit1.h”

//——————————————————————-

#pragma package(smart_init)

#pragma resource “*.dfm”

TForm1 *Form1;

struct Elemen { float x,y ;} ;

Elemen Objek[17];

//——————————————————————-

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//——————————————————————-

void __fastcall TForm1::FormShow(TObject *Sender)

{

int i;

Image1->Canvas->Rectangle(0,0,Image1->Width,Image1->Height);

Image1->Canvas->MoveTo(Objek[3].x,Objek[3].y);

for (i=1;i<=3;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};

Image1->Canvas->MoveTo(Objek[6].x,Objek[6].y);

for (i=4;i<=6;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};

Image1->Canvas->MoveTo(Objek[8].x,Objek[8].y);

for (i=7;i<=8;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};

Image1->Canvas->MoveTo(Objek[10].x,Objek[10].y);

for (i=9;i<=10;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};

Image1->Canvas->MoveTo(Objek[12].x,Objek[12].y);

for (i=11;i<=12;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};

/*

Image1->Canvas->MoveTo(Objek[16].x,Objek[16].y);

for (i=15;i<=16;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};

*/

}

//——————————————————————-

void __fastcall TForm1::FormActivate(TObject *Sender)

{

Objek[1].x = 150;    Objek[1].y = 150;

Objek[2].x = 50;     Objek[2].y = 150;

Objek[3].x = 100;     Objek[3].y = 50;

Objek[4].x = 135;    Objek[4].y = 165;

Objek[5].x = 35;    Objek[5].y = 165;

Objek[6].x = 85;     Objek[6].y = 65;

Objek[7].x = 100;     Objek[7].y = 50;

Objek[8].x = 85;    Objek[8].y = 65;

Objek[9].x = 50;    Objek[9].y = 150;

Objek[10].x = 35;   Objek[10].y = 165;

Objek[11].x = 150;    Objek[11].y = 150;

Objek[12].x = 135;    Objek[12].y = 165;

/*

Objek[13].x = 50;    Objek[13].y = 50;

Objek[14].x = 75;    Objek[14].y = 125;

Objek[15].x = 100;    Objek[15].y = 50;

Objek[16].x = 125;    Objek[16].y = 125;

*/

FormShow(Sender);

}

//——————————————————————-

void __fastcall TForm1::Button1Click(TObject *Sender)

{

int i;

for (i=1;i<=16;i++){ Objek[i].y-=5;};

FormShow(Sender);

}

//——————————————————————-

void __fastcall TForm1::Button3Click(TObject *Sender)

{

int i;

for (i=1;i<=16;i++){ Objek[i].x-=5;};

FormShow(Sender);

}

//——————————————————————-

void __fastcall TForm1::Button4Click(TObject *Sender)

{

int i;

for (i=1;i<=16;i++){ Objek[i].x+=5;};

FormShow(Sender);

}

//——————————————————————-

void __fastcall TForm1::Button2Click(TObject *Sender)

{

int i;

for (i=1;i<=16;i++){ Objek[i].y+=5;};

FormShow(Sender);

}

//——————————————————————-

void __fastcall TForm1::Button9Click(TObject *Sender)

{

int i;

for (i=1;i<=16;i++)

{  Objek[i].y*=2;

Objek[i].x*=2;

};

FormShow(Sender);

}

//——————————————————————-

void __fastcall TForm1::Button10Click(TObject *Sender)

{

int i;

for (i=1;i<=16;i++)

{

Objek[i].y/=2;

Objek[i].x/=2;

};

FormShow(Sender);

}

//——————————————————————-

void __fastcall TForm1::Button5Click(TObject *Sender)

{

Elemen TempObjek[17];

int i; float Sdt;

for (i=1;i<=16;i++)

{

Objek[i].x=Objek[i].x-Image1->Width / 2;

Objek[i].y=Objek[i].y-Image1->Height / 2;

Sdt=10*M_PI/180;

TempObjek[i].x=(Objek[i].x*cos(Sdt)-Objek[i].y*sin(Sdt));

TempObjek[i].y=(Objek[i].x*sin(Sdt)+Objek[i].y*cos(Sdt));

Objek[i]=TempObjek[i];

Objek[i].x=Objek[i].x+Image1->Width / 2;

Objek[i].y=Objek[i].y+Image1->Height / 2;

}

FormShow(Sender);

}

//——————————————————————-

void __fastcall TForm1::Button6Click(TObject *Sender)

{

Elemen TempObjek[17];

int i,n,m; float Sdt;

for (i=1;i<=16;i++)

{

n = Objek[3].x;

m = Objek[3].y;

Objek[i].x=Objek[i].x-n;

Objek[i].y=Objek[i].y-m;

Sdt=10*M_PI/180;

TempObjek[i].x=(Objek[i].x*cos(Sdt)-Objek[i].y*sin(Sdt));

TempObjek[i].y=(Objek[i].x*sin(Sdt)+Objek[i].y*cos(Sdt));

Objek[i]=TempObjek[i];

Objek[i].x=Objek[i].x+n;

Objek[i].y=Objek[i].y+m;

}

FormShow(Sender);

}

//——————————————————————-

void __fastcall TForm1::Button7Click(TObject *Sender)

{

FormActivate(Sender);

}

//——————————————————————-

void __fastcall TForm1::Button8Click(TObject *Sender)

{

Close();

}

//——————————————————————-

Output

tugas

Grafika Komputer part 05

•April 6, 2009 • Leave a Comment

OBYEK TIGA DIMENSI

Secara konseptual, jaring polygon digunakan dalam grafika computer untuk menghasilkan objek 3D. Penciptaan objek 3D dengan computer dilakukan dengan memanipulasi jaring polygon baik dengan pemrograman dan juga pemahaman geometri 3D. Jaring polygon adalah permukaan yang dibuat dari kumpulan-kumpulan muka-muka polygon.

Jaring dapat digunakan untuk membuat ‘kulit’ dari suatu objek. Ada dua cara untuk membuat objek 3D dengan jaring polygon, yaitu :

    1. Metode daftar titik (vertex list method)
    2. Metode daftar muka (face list method)

Ada beberapa cara pendefinisian jaring. Sebagai contoh untuk membuat bentuk kubus dapat diwakili dengan membuat satu daftar yang berisi daftar masing-masing polygon dan lokasi titik.

Program

//—————————————————————————

#include <vcl.h>

#pragma hdrstop

#include “Unit1.h”

#include <stdlib.h>

struct Elemen { float x,y ;} ;

Elemen Objek[17];

//—————————————————————————

#pragma package(smart_init)

#pragma resource “*.dfm”

TObyek_3D *Obyek_3D;

//—————————————————————————

__fastcall TObyek_3D::TObyek_3D(TComponent* Owner)

: TForm(Owner)

{

}

//—————————————————————————

void __fastcall TObyek_3D::FormActivate(TObject *Sender)

{

Objek[1].x = 100; Objek[1].y = 50;

Objek[2].x = 50; Objek[2].y = 50;

Objek[3].x = 50; Objek[3].y = 100;

Objek[4].x = 100; Objek[4].y = 100;

Objek[5].x = 125; Objek[5].y = 125;

Objek[6].x = 75; Objek[6].y = 125;

Objek[7].x = 75; Objek[7].y = 175;

Objek[8].x = 125; Objek[8].y = 175;

Objek[9].x = 100; Objek[9].y = 100;

Objek[10].x = 125; Objek[10].y = 175;

Objek[11].x = 50; Objek[11].y = 100;

Objek[12].x = 75; Objek[12].y = 175;

Objek[13].x = 50; Objek[13].y = 50;

Objek[14].x = 75; Objek[14].y = 125;

Objek[15].x = 100; Objek[15].y = 50;

Objek[16].x = 125; Objek[16].y = 125;

FormShow(Sender);

}

//—————————————————————————

void __fastcall TObyek_3D::FormShow(TObject *Sender)

{

int i;

Image1->Canvas->Rectangle(0,0,Image1->Width,Image1->Height);

Image1->Canvas->MoveTo(Objek[4].x,Objek[4].y);

for (i=1;i<=4;i++)

{ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};

Image1->Canvas->MoveTo(Objek[8].x,Objek[8].y);

for (i=5;i<=8;i++)

{ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};

Image1->Canvas->MoveTo(Objek[10].x,Objek[10].y);

for (i=9;i<=10;i++)

{ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};

Image1->Canvas->MoveTo(Objek[12].x,Objek[12].y);

for (i=11;i<=12;i++)

{ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};

Image1->Canvas->MoveTo(Objek[13].x,Objek[13].y);

for (i=12;i<=13;i++)

{ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};

Image1->Canvas->MoveTo(Objek[16].x,Objek[16].y);

for (i=15;i<=16;i++)

{ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};

}

output

modul5-part11

Grafika Komputer part 04

•April 6, 2009 • 1 Comment

TRANSFORMASI OBYEK DUA DIMENSI

Grafika computer merupakan bidang yang menarik minat banyak orang. Salah satu sub bagian dari grafika adalah pemodelan objek. Dalam pemodelan objek 2D, berbagai objek dimodifikasi dengan melakukan berbagai operasi fungsi atau operasi transformasi geometri. Transformasi ini dapat berupa transformasi dasar ataupun gabungan dari berbagai transformasi geometri. Transformasi ini dikenal dengan Transformasi affine. Pada dasarnya, transformasi merupakan suatu operasi modifikasi bentuk objek tanpa merusak bentuk dasar dari objek. Salah satu contoh transformasi adalah transformasi dari window ke viewport.

Pada Viewport, Objek yang akan digambar pada layar biasanya mempunyai ukuran yang jauh lebih besar dibanding dengan ukuran layar, sehingga perlu dilakukan pemetaan transformasi yang memungkinkan objek tersebut bisa seluruhnya digambar dilayar, tetapi pada layar dengan koordinat yang terbatas, dan biasanya dibatasi oleh sebuah kotak yang disebut windows, sedangkan layarnya tersebut disebut Viewport.

Translasi merupakan suatu proses yang menyebabkan perpindahan objek dari satu titik ke titik lain. Translasi dilakukan dengan penambahan translasi pada suatu titik koordinat dengan translasi vector yaitu (trx,try), dimana trx adalah translation vector menurut sumbu x sedangkan try adalah translasi vector terhadap sumbu y.

Koordinat baru titik yang ditranslasi dapat diperoleh dengan menggunakan rumus:

x = x + trx

y = y + try

Dimana (x,y) adalah koordinat asal suatu objek dan (x,y) adalah koordinat baru objek tersebut setelah ditranslasi.Translasi adalah transformasi dengan bentuk yang tetap memindahkan objek apa adanya. Dengan demikian setiap titik dari objek akan ditranslasi dengan besaran yang sama.

Transformasi skala adalah perubahan ukuran suatu objek. Penskalaan dilakukan untuk memperbesar atau memperkecil gambar dengan persamaan :

Q = PM + tr

Hasil penskalaan dinyatakan:

(Qx , Qy) = (Sx Px , Sy Py)

Sx = factor skala kearah mendatar

Sy = factor skala kearah tegak

Rotasi merupakan bentuk transformasi berupa pemutaran objek, dilakukan dengan menambahkan besaran pada absis X dan ordinat Y. Rotasi dua dimensi pada suatu objek akan memindahkan objek tersebut menurut garis melingkar. Pada bidang xy.

Untuk melakukan rotasi diperlukan sudut rotasi q dan pivot point (xp,yp) atau rotation point dimana objek ini dirotasi.

Shearing mempunyai beberapa pengertian, antara lain :

Shearing adalah bentuk transformasi yang membuat distorsi dari bentuk suatu objek, seperti menggeser sisi tertentu.

Shearing adalah suatu proses untuk mentransformasikan objek dengan cara “membebani” objek tersebut kea rah tertentu, sehingga dihasilkan suatu objek yang distorsi.

Dua macam shear yang umum adalah shear menurut sumbu x dan shear menurut sumbu y.

Program

//—————————————————————————

#include <vcl.h>

#pragma hdrstop

#include <math.h>

#include <stdlib.h>

#include “Unit1.h”

//—————————————————————————

#pragma package(smart_init)

#pragma resource “*.dfm”

TForm1 *Form1;

struct Elemen { float x,y ;} ;

Elemen Objek[6];

//—————————————————————————

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//—————————————————————————

void __fastcall TForm1::FormShow(TObject *Sender)

{ int i;

Image1->Canvas->Rectangle(0,0,Image1->Width,Image1->Height);

Image1->Canvas->MoveTo(Objek[5].x,Objek[5].y);

for (i=1;i<=5;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};

}

//—————————————————————————

void __fastcall TForm1::FormActivate(TObject *Sender)

{ Objek[1].x = 100; Objek[1].y = 50;

Objek[2].x = 50; Objek[2].y = 100;

Objek[3].x = 100; Objek[3].y = 100;

Objek[4].x = 100; Objek[4].y = 150;

Objek[5].x = 150; Objek[5].y = 100;

FormShow(Sender);

}

//—————————————————————————

void __fastcall TForm1::Button5Click(TObject *Sender)

{

int i;

for (i=1;i<=5;i++){ Objek[i].x+=5;};

FormShow(Sender);

}

//—————————————————————————

void __fastcall TForm1::Button6Click(TObject *Sender)

{

int i;

for (i=1;i<=5;i++){ Objek[i].y+=5;};

FormShow(Sender);

}

//—————————————————————————

void __fastcall TForm1::Button4Click(TObject *Sender)

{

int i;

for (i=1;i<=5;i++){ Objek[i].x-=5;};

FormShow(Sender);

}

//—————————————————————————

void __fastcall TForm1::Button3Click(TObject *Sender)

{

int i;

for (i=1;i<=5;i++){ Objek[i].y-=5;};

FormShow(Sender);

}

//—————————————————————————

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Elemen TempObjek[6];

int i; float Sdt;

for (i=1;i<=5;i++)

{ Objek[i].x=Objek[i].x-Image1->Width / 2;

Objek[i].y=Objek[i].y-Image1->Height / 2;

Sdt=10*M_PI/180;

TempObjek[i].x=(Objek[i].x*cos(Sdt)-Objek[i].y*sin(Sdt));

TempObjek[i].y=(Objek[i].x*sin(Sdt)+Objek[i].y*cos(Sdt));

Objek[i]=TempObjek[i];

Objek[i].x=Objek[i].x+Image1->Width / 2;

Objek[i].y=Objek[i].y+Image1->Height / 2;

} FormShow(Sender);

}

//—————————————————————————

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Elemen TempObjek[6];

int i,n,m; float Sdt;

for (i=1;i<=5;i++)

{

n = Objek[3].x;

m = Objek[3].y;

Objek[i].x=Objek[i].x-n;

Objek[i].y=Objek[i].y-m;

Sdt=10*M_PI/180;

TempObjek[i].x=(Objek[i].x*cos(Sdt)-Objek[i].y*sin(Sdt));

TempObjek[i].y=(Objek[i].x*sin(Sdt)+Objek[i].y*cos(Sdt));

Objek[i]=TempObjek[i];

Objek[i].x=Objek[i].x+n;

Objek[i].y=Objek[i].y+m;

}

FormShow(Sender);

}

//—————————————————————————

Output

modul4-part1