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);}; }
Rabu, 29 April 2009
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);};
}
//---------------------------------------------------------------------------
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);};
}
//---------------------------------------------------------------------------
Langganan:
Postingan (Atom)