Tugas Modul5 (praktikum Grafika)

Tugas 1

script programnya....

//-----------------------------------------------------------------
#include
#pragma hdrstop

#include "Unit1.h"
//-----------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
struct Elemen { float x,y ;} ;
Elemen Objek[25];
//-----------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//-----------------------------------------------------------------
void __fastcall TForm1::FormActivate(TObject *Sender)
{
 FormShow(Sender);
}
//========================================
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[12].x,Objek[12].y);
     for (i=9;i<=12;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};
     Image1->Canvas->MoveTo(Objek[16].x,Objek[16].y);
     for (i=13;i<=16;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};
     Image1->Canvas->MoveTo(Objek[20].x,Objek[20].y);
     for (i=17;i<=20;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};
     Image1->Canvas->MoveTo(Objek[24].x,Objek[24].y);
    for (i=21;i<=24;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};
}

void __fastcall TForm1::Button1Click(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;
 FormShow(Sender);
}
//-----------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
 Objek[5].x = 100;    Objek[5].y = 50;
 Objek[6].x = 50;     Objek[6].y = 50;
 Objek[7].x = 75;     Objek[7].y = 125;
 Objek[8].x = 125;    Objek[8].y = 125;
 FormShow(Sender);
}
//-----------------------------------------------------------------


void __fastcall TForm1::Button3Click(TObject *Sender)
{
 Objek[9].x = 50;    Objek[9].y = 100;
 Objek[10].x = 100;     Objek[10].y = 100;
 Objek[11].x = 125;     Objek[11].y = 175;
 Objek[12].x = 75;    Objek[12].y = 175;
 FormShow(Sender);
}
//------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)
{
 Objek[13].x = 75;      Objek[13].y = 125;
 Objek[14].x = 125;     Objek[14].y = 125;
 Objek[15].x = 125;     Objek[15].y = 175;
 Objek[16].x = 75;      Objek[16].y = 175;
 FormShow(Sender);
}
//-----------------------------------------------------------------

void __fastcall TForm1::Button6Click(TObject *Sender)
{
 Objek[17].x = 100;    Objek[17].y = 50;
 Objek[18].x = 100;    Objek[18].y = 100;
 Objek[19].x = 125;      Objek[19].y = 175;
 Objek[20].x = 125;      Objek[20].y = 125;
 FormShow(Sender);
}
//------------------------------------------------------------------

void __fastcall TForm1::Button7Click(TObject *Sender)
{
 Objek[21].x = 50;     Objek[21].y = 50;
 Objek[22].x = 50;     Objek[22].y = 100;
 Objek[23].x = 75;     Objek[23].y = 175;
 Objek[24].x = 75;      Objek[24].y = 125;
 FormShow(Sender);

}
//--------------------------------------------------------------------

void __fastcall TForm1::Button5Click(TObject *Sender)
{
Close();
}
//--------------------------------------------------------------------


outputnya.
jika klik button M1:



jika klik M2



jika klik M3:



jika klik M4:


jika klik M5:


jika klik M6



Tugas 2

Script programnya.
//-------------------------------------------------------------------------
#include
#pragma hdrstop

#include "Unit1.h"
//-------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
struct Elemen { float x,y ;} ;
Elemen Objek[15];
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormActivate(TObject *Sender)
{
 Objek[1].x = 125;     Objek[1].y = 100;
 Objek[2].x = 75;     Objek[2].y = 200;
 Objek[3].x = 175;    Objek[3].y = 200;

 Objek[4].x = 100;    Objek[4].y = 125;
 Objek[5].x = 50;     Objek[5].y = 225;
 Objek[6].x = 150;     Objek[6].y = 225;

 Objek[7].x = 125;    Objek[7].y = 100;
 Objek[8].x = 100;   Objek[8].y = 125;

 Objek[9].x = 75;    Objek[9].y = 200;
 Objek[10].x = 50;    Objek[10].y = 225;

 Objek[13].x = 175;    Objek[13].y = 200;
 Objek[14].x = 150;    Objek[14].y = 225;
 FormShow(Sender);
}
//================================================
void __fastcall TForm1::FormShow(TObject *Sender)
{
 int i;
  Image1->Canvas->Rectangle(0,0,Image1->Width,Image1->Height);

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

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

     //garis satu
     Image1->Canvas->MoveTo(Objek[8].x,Objek[8].y);
     for (i=7;i<=8;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};
     //garis dua
     Image1->Canvas->MoveTo(Objek[10].x,Objek[10].y);
     for (i=9;i<=10;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};
      //garis tiga
     Image1->Canvas->MoveTo(Objek[14].x,Objek[14].y);
     for (i=13;i<=14;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};
 }

Output:


Praktikum Grafika (pertemuan 5)

Pada pertemuan ini membahas tentang obyek 3 dimensi.
Contoh program:

Form



Kemudian buat script ini dan berikut sedikit penjelasaanya

//--------------------------------------------------

#include

#pragma hdrstop



#include "Unit1.h"

Membaca untuk file unit 1.h

//---------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;



struct Elemen { float x,y ;} ;

deklarasi dari elemen



Elemen Objek[17];

Elemen objek sampai 17

//-----------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//--------------------------------------------------------

void __fastcall TForm1::FormActivate(TObject *Sender)

mengaktifkan komponen objek

{

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;

Merupakan posisi dr titik2 nya



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;

Merupakan posisi garis nya





FormShow(Sender);

Form show untuk memanggil

}

//========================================

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




maka akan muncul program.

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


praktikum Grafika (pertemuan 2)

Pada pertemuan ke2 kita membahas titik dan garis dengan menggunakan C++ builder…

Program pertama adalah garis DDA
Buat formnya seperti ini



truzzz isikan ini pada sourcenya...

#include

#pragma hdrstop

#include "Garis.h"

#pragma resource "*.dfm"

TForm1 *Form1;

int X1,X2,Y1,Y2;

int tergambar;

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

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

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

void __fastcall TForm1::DDA(int xa,int ya,int xb,int yb)

{ int dx, dy,step,k ;

float Xincrement,Yincrement,x,y;

xa=10;ya=10;xb=17;yb=16;

dx = xb-xa;

dy = yb-ya;

x=(float)xa;

y=(float)ya;

if (abs(dx)>abs(dy))

{ step = (abs(dx));}

else

{ step = (abs(dy)); };

Xincrement=(float)dx/step;

Yincrement=(float)dy/step;

Image1->Canvas->Pixels[int (x)][int (y)]=clBlack;

judul(x,y);

for (k=0;k<=step;k++)

{

x+=Xincrement;

y+=Yincrement;

Image1->Canvas->Pixels[int(x)][int(y)]=clBlack;

tampil(x,y,k);

}

}

void __fastcall TForm1::FormActivate(TObject *Sender)

{

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

}

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

void __fastcall TForm1::Image1MouseDown(TObject *Sender, TMouseButton Button,TShiftState Shift, int X, int Y)

{

tergambar=true; X1=X; Y1=Y;

}

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

void __fastcall TForm1::BtBaruClick(TObject *Sender)

{

tergambar=false;

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

}

void __fastcall TForm1::judul(float x,float y)

{

char tampilX[20],tampilY[20];

int xt=200, yt=15, kt=2;

//Menampilkan bilangan asli tanpa pembulatan

_gcvt(x,4,tampilX);

_gcvt(y,4,tampilY);

Image1->Canvas->TextOut(xt-50, (kt-1)*yt,"k");

Image1->Canvas->TextOut(xt, (kt-1)*yt,"x");

Image1->Canvas->TextOut(xt+50, (kt-1)*yt,"y");

Image1->Canvas->TextOut(xt, kt*yt,tampilX);

Image1->Canvas->TextOut(xt+50, kt*yt,tampilY);

Image1->Canvas->TextOut(xt+100, (kt-1)*yt,"(x bulat, y bulat)");

//Menampilkan bilangan yang digunakan untuk pembulatan

_gcvt(x,2,tampilX);

_gcvt(y,2,tampilY);

//Menampilkan koordinat X dan Y

Image1->Canvas->TextOut(xt+100, kt*yt,"(");

Image1->Canvas->TextOut(xt+120, kt*yt,tampilX);

Image1->Canvas->TextOut(xt+150, kt*yt,",");

Image1->Canvas->TextOut(xt+160, kt*yt,tampilY);

Image1->Canvas->TextOut(xt+190, kt*yt,")");

}

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

void __fastcall TForm1::tampil(float x,float y,int k)

{

char tampilX[20],tampilY[20],tampilK[20];

int xt=200, yt=15;

k += 3;

//Menampilkan bilangan asli tanpa pembulatan

_gcvt(x,4,tampilX);

_gcvt(y,4,tampilY);

Image1->Canvas->TextOut(xt, k*yt,tampilX);

Image1->Canvas->TextOut(xt+50, k*yt,tampilY);

//Menampilkan bilangan yang digunakan untuk pembulatan

_gcvt(x,2,tampilX);

_gcvt(y,2,tampilY);

_gcvt(k-3,10,tampilK);

//Menampilkan koordinat X dan Y

Image1->Canvas->TextOut(xt-50, k*yt,tampilK);

Image1->Canvas->TextOut(xt+100, k*yt,"(");

Image1->Canvas->TextOut(xt+120, k*yt,tampilX);

Image1->Canvas->TextOut(xt+150, k*yt,",");

Image1->Canvas->TextOut(xt+160, k*yt,tampilY);

Image1->Canvas->TextOut(xt+190, k*yt,")");

}

void __fastcall TForm1::BtCloseClick(TObject *Sender)

{

Close();

}

void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button,TShiftState Shift, int X, int Y)

{

{

BtBaruClick(Sender);

tergambar=false;

X2=X; Y2=Y;

if (RadioGroup1->ItemIndex==0)

{ DDA(X1,Y1,X2,Y2);

}

};

}


maka akan muncul tampilan programnya...



Program Kedua adalah garis Bressenham, DDA dan Line C++


buat form..



Dan tulis....


//---------------------------------------------------------------------------
#include
#include
#pragma hdrstop

#include "Grafka2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int X1,Y1,X2,Y2;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------


void __fastcall TForm1::FormActivate(TObject *Sender)
{
Image1->Canvas->Rectangle(0,0,Image1->Width,Image1->Height);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Image1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
X1=X;Y1=Y;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DDA(int x1,int x2,int y1,int y2)
{
int step,k;
float dx,dy,Xincrement,Yincrement,xc,yc;
dx=x2-x1;dy=y2-y1;xc=x1;yc=y1;
if(abs(dx)>abs(dy))
{step=int (abs(dx));}
else
{step=int(abs(dx));}
Xincrement=dx/step;Yincrement=dy/step;
Image1->Canvas->Pixels[int (xc)][int (yc)]=clBlack;
for (k=1;k<=step;k++) { xc=xc+Xincrement; yc=yc+Yincrement; Image1->Canvas->Pixels[int(xc)][int(yc)]=clBlack;
}
}
void Bressenham(int X1,int X2,int Y2,int Y1)
{
};
void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
{
X2=X;Y2=Y;
if (RadioGroup1->ItemIndex==1)
{
DDA(X1,Y1,X2,Y2);
}
else if (RadioGroup1->ItemIndex==1)
{
Bressenham(X1,Y1,X2,Y2);
}
else
{
Image1->Canvas->MoveTo(X1,Y1);
Image1->Canvas->LineTo(X2,Y2);
}
};
}
//---------------------------------------------------------------------------


dan jalankan..


segitu dulu....



Postingan Lebih Baru Postingan Lama Beranda