Delphi 7, Menggambar translasi dasar

Kesempatan kali ini saya akan mencoba sharing tutorial, melakukan translasi dasar pada objek 2D dengan aplikasi Delphi 7

Translasi adalah memindahkan suatu objek sepanjang garis lurus dari suatu lokasi koordinat tertentu ke lokasi yang lain.

Translasi dilakukan dengan penambahan translasi pada suatu titik koordinat dengan translation vector atau shift vector, intinya translasi adalah proses transformasi suatu objek 2D dengan mengubah letak tanpa mengubah ukuran dan bentuk.


kali  ini objek 2D yang saya coba translasikan adalah Segitiga


1. buka delphi, buat project baru (file>new>application), 




2.lalu desain program seperti gambar berikut :



yang bertanda merah merupakan tools bar yang kita gunakan untuk membuat program.


tools yang digunakan :

Label


Untuk membuat label gunakan tool sepeti gambar diatas

lakukan perubahan pada masing-masing Label sesuai keterangan berikut :
Caption Label 1 : Menggambar TRANSLASI Dasar
Caption Label 2 : Nilai A
Caption Label 2 : Nilai B

Edit

Gunakan tool di atas untuk membuat kolom edit

lakukan perubahan pada masing-masing Edit sesuai keterangan berikut :
Name edit1 : eNilaiA
Name edit2 : eNilaiB


Button

Gunakan tool di atas untuk membuat tombol

lakukan perubahan pada masing-masing Button sesuai keterangan berikut :
Button1 = Name : Button1
  Caption : Segitiga
Button2 = Name : Button2
  Caption : Translasi
Button3 = Name : Ulang
  Caption : Ulang
Button4 = Name : Keluar
  Caption : Keluar


StringGrid



Tool di atas untuk membuat StringGrid, pada submenu additional

lakukan setting StringGrid sesuai keterangan berikut :
StringGrid1 = Name : StringGrid1
                         FixedCol : 1
                         Fixed Row : 0
                         RowCount : 2
                         ColCount : 2
                         Options goEditing : True

2. double klik pada form sehingga masuk pada halaman kode program, lalu masukan kode program berikut di bawah uses

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, StdCtrls;
  Const N=3;
  Type
  Matrik33 = array[1..3,1..3] of Real;
  Matrik3N = array[1..3,1..N] of Real;

3. double klik pada form1, lalu masukan kode program berikut dibawah FormCreate :

procedure TForm1.FormCreate(Sender: TObject);
begin
x0:=ClientWidth div 2; y0:=ClientHeight div 2; end;


4.pilih form1-events- double klik pada OnPaint

5.masukan kode program berikut di bawah procedure FormPaint

procedure TForm1.FormPaint(Sender: TObject);
var k:integer;
begin
for k :=0 to ClientWidth do //sumbu x
Canvas.Pixels[k,y0]:=clBlue;
for k := 0 to ClientHeight do //sumbu y
Canvas.Pixels[x0,k]:=clRed; end;

6.pilih form1-events- double klik pada OnShow



7.masukan kode program berikut di bawah procedure FormShow

procedure TForm1.FormShow(Sender: TObject);
begin
with StringGrid1 do
begin
Cells[0,0]:='X'; Cells[0,1]:='Y'; end; end;


8.masukan kode program berikut dibawah kode program FormShow

procedure TForm1.Obyek2D(Sender:TObject; var Obyek:Matrik3N);
var i,j : Integer;
begin
for i := 1 to 2 do
for j := 1 to N do
Obyek[i,j]:=StrToFloat(StringGrid1.Cells[j,i-1]);
for j:= 1 to N do
Obyek[3,j]:=1; end;

procedure TForm1.MatrikTranslasi2D(Sender: TObject; var Tv : Matrik33; a,b: real);
begin
a :=StrToFloat(eNilaiA.Text); b:= StrToFloat(eNilaiB.Text);
Tv[1,1]:=1; Tv[1,2]:=0; Tv[1,3]:=a;
Tv[2,1]:=0; Tv[2,2]:=1; Tv[2,3]:=b;
Tv[3,1]:=0; Tv[3,2]:=0; Tv[3,3]:=1;
end;

procedure MatrikKaliTransformasiObyek2D(var Obyek: Matrik3N; Tr:Matrik33);
Var i,j,k: Integer; Hasil : Matrik3N;
begin
for i:= 1 to 3 do
for k:= 1 to N do
begin
Hasil[i,k]:=0;
for j:= 1 to 3 do
Hasil[i,k]:=Hasil[i,k]+Tr[i,j]*Obyek[j,k];end;
Obyek := Hasil; end;

9.tambahkan program dibawah type


procedure Obyek2D(Sender: TObject; var Obyek:Matrik3N);
procedure MatrikTranslasi2D(Sender: TObject; var Tv : Matrik33; a,b:real);

10.tambahkan kode dibawah var

  Form1: TForm1;
  x0,y0:integer;
  Obyek:Matrik3N;

  Tv : Matrik33; a,b: real;


11.double klik pada button segitiga, lalu masukan kode program berikut :


procedure TForm1.Button1Click(Sender: TObject);
begin
Obyek2D(Sender,Obyek);
Canvas.MoveTo(trunc(X0+Obyek[1,1]),trunc(Y0-Obyek[2,1]));
Canvas.LineTo(trunc(X0+Obyek[1,2]),trunc(Y0-Obyek[2,2]));
Canvas.MoveTo(trunc(X0+Obyek[1,2]),trunc(Y0-Obyek[2,2]));
Canvas.LineTo(trunc(X0+Obyek[1,3]),trunc(Y0-Obyek[2,3]));
Canvas.MoveTo(trunc(X0+Obyek[1,3]),trunc(Y0-Obyek[2,3]));
Canvas.LineTo(trunc(X0+Obyek[1,1]),trunc(Y0-Obyek[2,1]));
end;


12.double klik pada button translasi, lalu masukan kode program berikut :

procedure TForm1.Button2Click(Sender: TObject);
begin
Obyek2D(Sender,Obyek);
MatrikTranslasi2D(Sender,Tv,a,b);
MatrikKaliTransformasiObyek2D(Obyek,Tv);

Canvas.MoveTo(trunc(X0+Obyek[1,1]),trunc(Y0-Obyek[2,1]));
Canvas.LineTo(trunc(X0+Obyek[1,2]),trunc(Y0-Obyek[2,2]));
Canvas.MoveTo(trunc(X0+Obyek[1,2]),trunc(Y0-Obyek[2,2]));
Canvas.LineTo(trunc(X0+Obyek[1,3]),trunc(Y0-Obyek[2,3]));
Canvas.MoveTo(trunc(X0+Obyek[1,3]),trunc(Y0-Obyek[2,3]));
Canvas.LineTo(trunc(X0+Obyek[1,1]),trunc(Y0-Obyek[2,1]));

end;

13. double klik pada button ulang, lalu masukan kode program berikut :

procedure TForm1.Button3Click(Sender: TObject);
var i,j: Integer;
begin
Form1.Refresh;
eNilaiA.Text:=''; eNilaiB.Text:='';
for i:= 1 to 2 do
for j:= 1 to 3 do
StringGrid1.Cells[j,i-1]:=''; end;


14.double klik pada button keluar, lalu masukan kode program berikut:
Application.Terminate;
end;




15. berikut hasil eksekusi programnya :



sekian tutorial dari saya tentang translasi dasar objek pada 2D

WassalamualaikumWarrahmatullahiWabarakatuh

untuk program bisa di unduh disini

Facebook

Komentar

Postingan populer dari blog ini

delphi 7, Membuat garis sederhana membentuk suatu gambar primitif menyerupai mobil

delphi 7, menggambar garis dengan menggunakan algoritma DDA,POLINOM, dan BRESENHAM