Rabu, 29 April 2009

Laporan Obyek 3 Dimensi

OBYEK 3 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 :

Metode daftar titik (vertex list method)

Metode daftar muka (face list method)




Script Program

#include

#pragma hdrstop

#include "Objek3D.h"

#pragma resource "*.dfm"

TForm1 *Form1;

struct Elemen { float x,y ;} ;

Elemen Objek[17];

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

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner) { }

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

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

Tugas Obyek 3 Dimensi

OBYEK 3 DIMENSI

Tugas 1
script program

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










Tugas 2

Script Program

#include
#pragma hdrstop
#include "kubus.h"
#pragma resource "*.dfm"
TForm1 *Form1;
struct Elemen { float x,y ;} ;
Elemen Objek[37];
//=========================================================================
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
void __fastcall TForm1::FormActivate(TObject *Sender)
{
//segilima
Objek[1].x = 50; Objek[1].y = 100;
Objek[2].x = 100; Objek[2].y = 50;
Objek[3].x = 150; Objek[3].y = 100;
Objek[4].x = 130; Objek[4].y = 150;
Objek[5].x = 75; Objek[5].y = 150;

Objek[6].x = 30; Objek[6].y = 130;
Objek[7].x = 80; Objek[7].y = 80;
Objek[8].x = 125; Objek[8].y = 130;
Objek[9].x = 105; Objek[9].y = 180;
Objek[10].x = 50; Objek[10].y = 180;

Objek[11].x = 50; Objek[11].y = 100;
Objek[12].x = 30; Objek[12].y = 130;

Objek[13].x = 100; Objek[13].y = 50;
Objek[14].x = 80; Objek[14].y = 80;

Objek[15].x = 150; Objek[15].y = 100;
Objek[16].x = 125; Objek[16].y = 130;

Objek[17].x = 130; Objek[17].y = 150;
Objek[18].x = 105; Objek[18].y = 180;

Objek[19].x = 75; Objek[19].y = 150;
Objek[20].x = 50; Objek[20].y = 180;

//tabung
Objek[21].x = 275; Objek[21].y =75 ;
Objek[22].x = 375; Objek[22].y =75;

Objek[23].x = 275; Objek[23].y = 200;
Objek[24].x = 375; Objek[24].y = 200;
FormShow(Sender);

//segitiga
Objek[25].x = 250; Objek[25].y = 300;
Objek[26].x = 300; Objek[26].y = 300;
Objek[27].x = 275; Objek[27].y = 240;

Objek[28].x = 230; Objek[28].y = 320;
Objek[29].x = 280; Objek[29].y = 320;
Objek[30].x = 255; Objek[30].y = 260;

Objek[31].x = 230; Objek[31].y = 320;
Objek[32].x = 250; Objek[32].y = 300;

Objek[33].x = 280; Objek[33].y = 320;
Objek[34].x = 300; Objek[34].y = 300;

Objek[35].x = 255; Objek[35].y = 260;
Objek[36].x = 275; Objek[36].y = 240;

FormShow(Sender);
}

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

void __fastcall TForm1::FormShow(TObject *Sender)
{
int i;
//segilima
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);};
Image1->Canvas->MoveTo(Objek[10].x,Objek[10].y);
for (i=6;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);};
Image1->Canvas->MoveTo(Objek[18].x,Objek[18].y);
for (i=17;i<=18;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};
Image1->Canvas->MoveTo(Objek[20].x,Objek[20].y);
for (i=19;i<=20;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};

//tabung

Image1->Canvas->MoveTo(Objek[22].x,Objek[22].y);
for (i=21;i<=22;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};
Image1->Canvas->MoveTo(Objek[24].x,Objek[24].y);
for (i=23;i<=24;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};
Image1->Canvas->Ellipse(250,200,300,75);
Image1->Canvas->Ellipse(350,200,400,75);

//segitiga
Image1->Canvas->MoveTo(Objek[27].x,Objek[27].y);
for (i=25;i<=27;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};
Image1->Canvas->MoveTo(Objek[30].x,Objek[30].y);
for (i=28;i<=30;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};
Image1->Canvas->MoveTo(Objek[32].x,Objek[32].y);
for (i=31;i<=31;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};
Image1->Canvas->MoveTo(Objek[34].x,Objek[34].y);
for (i=33;i<=34;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};
Image1->Canvas->MoveTo(Objek[36].x,Objek[36].y);
for (i=35;i<=36;i++){ Image1->Canvas->LineTo(Objek[i].x,Objek[i].y);};


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