Delphi 7, Menggambar translasi dasar
Kesempatan kali ini saya akan mencoba sharing tutorial, melakukan translasi dasar pada objek 2D dengan aplikasi Delphi 7
yang bertanda merah merupakan tools bar yang kita gunakan untuk membuat program.
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.
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.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;
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;
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
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
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 :
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
Komentar
Posting Komentar