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..........