Rabu, 04 Maret 2009

Pertemuan ke 2

TITIK DAN GARIS

Dasar Teori

  1. PERSAMAAN GARIS

Persamaan garis menurut koordinta Cartesian adalah y=mx + b dimana m adalah slope / kemiringan garis yang di bentuk dari dua titik, yaitu (x1,y1)n dan (X2,Y2). Untuk penambahan x sepanjang garis yaitu dx akan mendapatkan penambahan y sebesar : dy =m.dx

  1. ATRIBUT

Atribut dasar untuk garis lurus adalah type (tipe), width (tebal) dan color (warna). Dalam beberapa paket apliksi grafik, garis ditampilkan dengan menngunakan pilihan pen atau brush. Berikut ini dibicarakan bagaimana fungsi garis dapat mengkomodasi bermacam – macem spesifikasi atribut.

  1. TIPE GARIS

Garis mempunyai beberapa linetype (tipe garis) diantaranya solid line ( garis tebal ), dashed line (garis putus), dan dotted line ( garis titik – titik).


Program di bawah ini menggambarkan penggunaan perintah linetype

#include

#pragma hdrstop

#include

#include

#include "Unit1.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

int X1,X2,Y1,Y2;

int tergambar;

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

__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::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::Image1MouseDown(TObject *Sender,

TMouseButton Button, TShiftState Shift, int X, int Y)

{

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

}

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


void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button,

TShiftState Shift, int X, int Y)

{

{

Button1Click(Sender);

tergambar=false;

X2=X; Y2=Y;

if (RadioGroup1->ItemIndex==0)

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

}

};

}

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


void __fastcall TForm1::Button1Click(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 pe

mbulatan

_gcvt(x,2,tampilX);

_gcvt(y,2,tampilY);

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::Button2Click(TObject *Sender)

{

Close();

}

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

dengan hasil output :





Tidak ada komentar:

Posting Komentar