Dengan M adalah matrik 3x3
#include
#include
#pragma hdrstop
#include "trans3d.h"
#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::BtTransAtasClick(TObject *Sender)
{ int i;
for (i=1;i<=16;i++){ Objek[i].y-=5;};
FormShow(Sender);
}
===========================================================================
void __fastcall TForm1::BtTransKiriClick(TObject *Sender)
{ int i;
for (i=1;i<=16;i++){ Objek[i].x-=5;};
FormShow(Sender);
}
===========================================================================
void __fastcall TForm1::BtTRansKananClick(TObject *Sender)
{
int i;
for (i=1;i<=16;i++){ Objek[i].x+=5;};
FormShow(Sender);
}
void __fastcall TForm1::BtTransBawahClick(TObject *Sender)
{ int i;
for (i=1;i<=16;i++){ Objek[i].y+=5;};
FormShow(Sender);
}
===========================================================================
void __fastcall TForm1::BtZoomInClick(TObject *Sender)
{ int i;
for (i=1;i<=16;i++)
{ Objek[i].y*=2;
Objek[i].x*=2;
};
FormShow(Sender);
}
void __fastcall TForm1::BtZoomOutClick(TObject *Sender)
{ int i;
for (i=1;i<=16;i++)
{
Objek[i].y/=2;
Objek[i].x/=2;
};
FormShow(Sender);
}
===========================================================================
void __fastcall TForm1::BtPtrSBKoorClick(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::BtPtrTTClick(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::BTDefaultClick(TObject *Sender)
{
FormActivate(Sender);
}
===========================================================================
void __fastcall TForm1::BtCloseClick(TObject *Sender)
{
Close();
}
Tidak ada komentar:
Posting Komentar