Posted by : Unknown Jumat, 18 Mei 2012


Assalamu'alaikum Wr. Wb.
Menikmati materi komputer grafik via pemrograman Delphi lumayan asyik, buat rekan-rekan yang menginginkan materinya silakan donwload link berikut :
Materi Komputer Grafik
Berikut contoh listing program yang saya ambil dari modul latihan saat perkuliahan:

GeSHi © 2004-2007 Nigel McNie, 2007-2010 Benny Baumann, 2008-2009 Milian Wolff
  1. {Listing Program Latihan Komputer Grafik
  2. Algoritma DDA, Bressenhem, dan Lingkaran
  3. untuk menggunakan listing ini harus diedit
  4. dan disesuaikan dengan penggunaan Form visualnya}
  5. {Algoritma DDA}
  6. unit Unit1;
  7. interface
  8. uses
  9. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  10. Dialogs, StdCtrls;
  11. type
  12. TForm1 = class(TForm)
  13. Button1: TButton;
  14. Label1: TLabel;
  15. Label2: TLabel;
  16. Label3: TLabel;
  17. Label4: TLabel;
  18. Edit1: TEdit;
  19. Edit2: TEdit;
  20. Edit3: TEdit;
  21. Edit4: TEdit;
  22. Button2: TButton;
  23. procedure Button1Click(Sender: TObject);
  24. procedure Button2Click(Sender: TObject);
  25. private
  26. { Private declarations }
  27. public
  28. { Public declarations }
  29. end;
  30. var
  31. Form1: TForm1;
  32. implementation
  33. {$R *.dfm}
  34. procedure TForm1.Button1Click(Sender: TObject);
  35. begin
  36. close
  37. end;
  38. procedure TForm1.Button2Click(Sender: TObject);
  39. var
  40. dx,dy,fstep,f,x1,x2,y1,y2:integer;
  41. deltax,deltay,x,y:real;
  42. begin
  43. x1:=strtoint(edit1.Text);
  44. y1:=strtoint(edit2.Text);
  45. x2:=strtoint(edit3.Text);
  46. y2:=strtoint(edit4.Text);
  47. dx:=(x2-x1);
  48. dy:=(y2-y1);
  49. if (abs(dx)>abs(dy)) then fstep:=abs(dx)
  50. else fstep:=abs(dy);
  51. deltax:= dx/fstep;
  52. deltay:= dy/fstep;
  53. x:=x1;y:=y1;
  54. canvas.Pixels[trunc(x),trunc(y)]:=clblue;
  55. for f :=0 to fstep-1 do
  56. begin
  57. x:=x+deltax;
  58. y:=y+deltay;
  59. canvas.Pixels[trunc(x),trunc(y)]:=clblue;
  60. end;
  61. end;
  62. end.
  63. {Algoritma bresenham}
  64. procedure TForm1.Button1Click(Sender: TObject);
  65. var
  66. p,dx,dy,xend,f,x,y,xa,xb,ya,yb:Integer;
  67. begin
  68. xa:=strtoint(edit1.Text);
  69. xb:=strtoint(edit2.Text);
  70. ya:=strtoint(edit3.Text);
  71. yb:=strtoint(edit4.Text);
  72.   dx:=Abs(xa-xb);
  73.   dy:=Abs(ya-yb);
  74.     p:=(2*dy)-dx;
  75.     if(xa>xb)then
  76.     begin
  77.       x:=xb;
  78.               y:=yb;
  79.               xend:=xa;
  80.       end
  81.       else
  82.       begin
  83.       x:=xa;
  84.               y:=ya;
  85.               xend:=xb;
  86.       end;
  87.               Canvas.Pixels[x,y]:=clRed;
  88.               for f:=to xend do
  89.                 begin
  90.                   x:=x+1;
  91.                   if(p<0)then p:=p+(2*dy)
  92.                   else
  93.                         begin y:=y+1;
  94.                           p:= p+(2*(dy-dx));
  95.     end;
  96.                               Canvas.Pixels[x,y]:=clRed;
  97. end;
  98. end;
  99. end.
  100. {Algoritma Lingkaran}
  101. procedure TForm1.Button1Click(Sender: TObject);
  102. var x,y,p,xc,yc,radius:integer;
  103. begin
  104.    x:=0;xc:=100;yc:=200;radius:=45;
  105.    y:=radius;
  106.    p:=1-radius;
  107.                   while(x<y)do
  108.                     begin
  109.                       canvas.pixels[xc+x,yc+y]:=clred;
  110.                       canvas.pixels[xc+x,yc-y]:=clred;
  111.                       canvas.pixels[xc-x,yc+y]:=clred;
  112.                       canvas.pixels[xc-x,yc-y]:=clred;
  113.                       canvas.pixels[xc+y,yc+x]:=clred;
  114.                       canvas.pixels[xc+y,yc-x]:=clred;
  115.                       canvas.pixels[xc-y,yc+x]:=clred;
  116.                       canvas.pixels[xc-y,yc-x]:=clred;
  117.                       if(p<0) then x:=x+1
  118.                             else
  119.           begin
  120.                                   x:=x+1;
  121.                                   y:=y-1;
  122.                                   end;
  123.           if(p<0)then p:=p+2*x+1
  124.                       else   p:=p+2*(x-y)+1;
  125.                     end;
  126. end;
  127. end.


Adapun tugasnya dalam pertemuan 2 ini adalah :
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.

{ 7 komentar... read them below or Comment }

  1. trima kasih atas kunjungannya dan trima kasih juga untuk link infonya...

    BalasHapus
  2. hmmmmmm....bisa dicoba, tapi apakah source kode nya udah siap dipakai atau msih ada errornya..???

    visit me on :

    http://www.kreativitasforall.blogspot.com/

    BalasHapus
    Balasan
    1. @Mas Tio, sebenarnya itu kode copas dari dosen langsung waktu kuliah, dan bisa jalan. Menggunakan Delphi 7, tks telah berkunjung..

      Hapus
  3. kita juga punya nih artikel mengenai 'Komputer Grafik', silahkan dikunjungi dan dibaca , berikut linknya
    http://repository.gunadarma.ac.id/bitstream/123456789/3308/1/Teknik%20Cube%20Mapping%20.pdf
    terimakasih

    BalasHapus
  4. mau tanya... ini gunanya xc, yc di algoritma lingkarannya...

    BalasHapus
  5. WAH,.,.,,MAKASII ATAS POSTINGANNYA........
    INSYA ALLAH INI SAGAT BERGUNA BAGI SAYA..........

    BalasHapus

Pengikut

Welcome to My Blog

Popular Post

- Copyright © Gudang Ilmu dan Pemikiran -Robotic Notes- Powered by Blogger - Designed by Johanes Djogan -