Assalamu'alaikum Wr. Wb.
Menikmati materi komputer grafik via pemrograman Delphi lumayan asyik, buat rekan-rekan yang menginginkan materinya silakan donwload link berikut :
Berikut contoh listing program yang saya ambil dari modul latihan saat perkuliahan:
{Listing Program Latihan Komputer Grafik
Algoritma DDA, Bressenhem, dan Lingkaran
untuk menggunakan listing ini harus diedit
dan disesuaikan dengan penggunaan Form visualnya}
{Algoritma DDA}
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
close
end;
procedure TForm1.Button2Click(Sender: TObject);
var
dx,dy,fstep,f,x1,x2,y1,y2:integer;
deltax,deltay,x,y:real;
begin
x1:=strtoint(edit1.Text);
y1:=strtoint(edit2.Text);
x2:=strtoint(edit3.Text);
y2:=strtoint(edit4.Text);
dx:=(x2-x1);
dy:=(y2-y1);
if (abs(dx)>abs(dy)) then fstep:=abs(dx)
else fstep:=abs(dy);
deltax:= dx/fstep;
deltay:= dy/fstep;
x:=x1;y:=y1;
canvas.Pixels[trunc(x),trunc(y)]:=clblue;
for f :=0 to fstep-1 do
begin
x:=x+deltax;
y:=y+deltay;
canvas.Pixels[trunc(x),trunc(y)]:=clblue;
end;
end;
end.
{Algoritma bresenham}
procedure TForm1.Button1Click(Sender: TObject);
var
p,dx,dy,xend,f,x,y,xa,xb,ya,yb:Integer;
begin
xa:=strtoint(edit1.Text);
xb:=strtoint(edit2.Text);
ya:=strtoint(edit3.Text);
yb:=strtoint(edit4.Text);
dx:=Abs(xa-xb);
dy:=Abs(ya-yb);
p:=(2*dy)-dx;
if(xa>xb)then
begin
x:=xb;
y:=yb;
xend:=xa;
end
else
begin
x:=xa;
y:=ya;
xend:=xb;
end;
Canvas.Pixels[x,y]:=clRed;
for f:=x to xend do
begin
x:=x+1;
if(p<0)then p:=p+(2*dy)
else
begin y:=y+1;
p:= p+(2*(dy-dx));
end;
Canvas.Pixels[x,y]:=clRed;
end;
end;
end.
{Algoritma Lingkaran}
procedure TForm1.Button1Click(Sender: TObject);
var x,y,p,xc,yc,radius:integer;
begin
x:=0;xc:=100;yc:=200;radius:=45;
y:=radius;
p:=1-radius;
while(x<y)do
begin
canvas.pixels[xc+x,yc+y]:=clred;
canvas.pixels[xc+x,yc-y]:=clred;
canvas.pixels[xc-x,yc+y]:=clred;
canvas.pixels[xc-x,yc-y]:=clred;
canvas.pixels[xc+y,yc+x]:=clred;
canvas.pixels[xc+y,yc-x]:=clred;
canvas.pixels[xc-y,yc+x]:=clred;
canvas.pixels[xc-y,yc-x]:=clred;
if(p<0) then x:=x+1
else
begin
x:=x+1;
y:=y-1;
end;
if(p<0)then p:=p+2*x+1
else p:=p+2*(x-y)+1;
end;
end;
end.
1. Buat sebuah garis yang menghubungkan dari titik (20,10) sampai dengan titik (30,18) dengan menggunakan algoritma DDA.
2. Buat sebuah garis yang menghubungkan dari titik (20,10) sampai dengan titik (30,18) dengan menggunakan algoritma Bressenham.
Listing program ditulis/dicetak.
Semoga bermanfaat.
trima kasih atas kunjungannya dan trima kasih juga untuk link infonya...
BalasHapusmantaappp...
BalasHapushmmmmmm....bisa dicoba, tapi apakah source kode nya udah siap dipakai atau msih ada errornya..???
BalasHapusvisit me on :
http://www.kreativitasforall.blogspot.com/
@Mas Tio, sebenarnya itu kode copas dari dosen langsung waktu kuliah, dan bisa jalan. Menggunakan Delphi 7, tks telah berkunjung..
Hapuskita juga punya nih artikel mengenai 'Komputer Grafik', silahkan dikunjungi dan dibaca , berikut linknya
BalasHapushttp://repository.gunadarma.ac.id/bitstream/123456789/3308/1/Teknik%20Cube%20Mapping%20.pdf
terimakasih
mau tanya... ini gunanya xc, yc di algoritma lingkarannya...
BalasHapusWAH,.,.,,MAKASII ATAS POSTINGANNYA........
BalasHapusINSYA ALLAH INI SAGAT BERGUNA BAGI SAYA..........