praktikum Grafika (pertemuan 4)

Transformasi objek dua dimensi....

buat form....


ini penjelasan dan tulisan scriptnya..

Fromshow dipanggil setelah form aktif

From show untuk menampilkan rectangle

#include

#include

#pragma hdrstop

#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);};

}

Fungsi move to membuat garis di image 1 antara objek 1 samapai objek 5

========================================================================

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::ButtonkananClick(TObject *Sender)

void __fastcall TForm1::ButtonbawahClick(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);

}

void __fastcall TForm1::ButtonkiriClick(TObject *Sender)

{ int i;

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

FormShow(Sender);

}

Menggunakan objek 3 sebagai poros nya. Objek 3 berada ditengah.

========================================================================

void __fastcall TForm1::ButtonatasClick(TObject *Sender)

{

int i;


jalankan program...


to be continue


0 Comments:

Post a Comment



Posting Lebih Baru Posting Lama Beranda