Tujuan praktikum :
- Kita mempelajari tentang berbagai cara untuk memanipulasi dan memodifikasi objek 2D.
- kita juga mampu memodifikasi objek 2D ini dan dapat mengimplementasikan ke dalam program
Grafika komputer merupakan bidang yang menarik dan dimintai oleh banyak orang. Salah satu nya adalah pemodelan objek.Dalam pemodlan objek 2D, berbagai objek dimodifikasi dengan melakukan berbagai operasi fungsi atau operasi transformasi geometri.
Cara membuat project Transformasi 2D :
- Terdapat pilihan tombol atas, kirim kanan, dan bawah.
- Terdapat sebuah Image untuk menampilkan objek 2 Dimensi yang akan bergeser sesuai dengan nama tombol yang ditekan. (Ada 4 tombol geser).
- Jika tombol kiri diklik maka objek akan bergeser ke kiri.
- Jika tombol kanan diklik maka objek akan bergeser ke kanan.
- Jika tombol Atas diklik maka objek akan bergeser ke atas.
- Jika tombol bawah diklik maka objek akan bergeser ke bawah.
- Terdapat 2 tombol putar yaitu berputar di cartesius dan berputar ditengah titik objek.
- Buka C++ Builder dan buat tampilan seperti gambar seperti ini .
Dengan Script :
#include
#pragma hdrstop
#include "Unit1.h"
#include
//---------------------------------------------------------------------------
#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::Button1Click(TObject *Sender)
{
int i;
for (i=1;i<=5;i++){ Objek[i].y-=5;};
FormShow(Sender);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int i;
for (i=1;i<=5;i++){ Objek[i].x+=5;};
FormShow(Sender);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(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::Button4Click(TObject *Sender)
{
int i;
for (i=1;i<=5;i++){ Objek[i].y+=5;};
FormShow(Sender);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(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::Button3Click(TObject *Sender)
{
int i;
for (i=1;i<=5;i++){ Objek[i].x-=5;};
FormShow(Sender);
}
//-----------------------------------
Tidak ada komentar:
Posting Komentar