Cornelius henry's Weblog

May 6, 2010

segitiga 3D

Filed under: grafika komputer — cornelius henry @ 5:49 am

source code segitiga 3D menggunakan lazarus

unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, ExtCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button10: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
Image1: TImage;
Panel1: TPanel;
procedure Button10Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
type
elemen=record
x,y:integer;
end;
var
Form1: TForm1;
objek: array[1..13] of elemen;
Tempobjek : array[1..13] of elemen;
sdt : real;
n, m, i : Integer;
implementation
{ TForm1 }
procedure TForm1.Button10Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
for i:=1 to 12 do
objek[i].y:=objek[i].y-5;
FormShow(Sender);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
for i:=1 to 12 do
objek[i].x:=objek[i].x+5;
FormShow(Sender);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
for i:=1 to 12 do
objek[i].y:=objek[i].y+5;
FormShow(Sender);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
for i:=1 to 12 do
objek[i].x:=objek[i].x-5;
FormShow(Sender);
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
for i:=1 to 12 do
Begin
objek[i].y:=objek[i].y * 2;
objek[i].x:=objek[i].x * 2;
end;
FormShow(Sender);
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
for i:=1 to 12 do
Begin
objek[i].y:=objek[i].y div 2;
objek[i].x:=objek[i].x div 2;
end;
FormShow(Sender);
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
for i := 1 to 12 do
begin
n := objek[3].x;
m := objek[3].y;
objek[i].x:=objek[i].x-n;
objek[i].y:=objek[i].y-m;
sdt:=10*PI/180;
Tempobjek[i].x:=round(objek[i].x*cos(sdt)-objek[i].y*sin(sdt));
Tempobjek[i].y:=round(objek[i].x*sin(sdt)+objek[i].y*cos(sdt));
objek[i]:=Tempobjek[i];
objek[i].x:=objek[i].x+n;
objek[i].y:=objek[i].y+m;
end;
FormShow(Sender);
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
for i := 1 to 12 do
begin
objek[i].x:=objek[i].x-Image1.Width div 2;
objek[i].y:=objek[i].y-Image1.Height div 2;
sdt:=10*PI/180;
Tempobjek[i].x:=Round(objek[i].x * cos(sdt)-objek[i].y * sin(sdt));
Tempobjek[i].y:=Round(objek[i].x * sin(sdt)+objek[i].y * cos(sdt));
objek[i].x:=Tempobjek[i].x;
objek[i].y:=Tempobjek[i].y;
objek[i].x:=objek[i].x+Image1.Width div 2;
objek[i].y:=objek[i].y+Image1.Height div 2;
end;
FormShow(Sender);
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
FormActivate(Sender);
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
objek[1].x := 250; objek[1].y := 150;
objek[2].x := 300; objek[2].y := 250;
objek[3].x := 200; objek[3].y := 250;
objek[4].x := 275; objek[4].y := 125;
objek[5].x := 325; objek[5].y := 225;
objek[6].x := 225; objek[6].y := 225;
objek[7].x := 250; objek[7].y := 150;
objek[8].x := 275; objek[8].y := 125;
objek[9].x := 300; objek[9].y := 250;
objek[10].x := 325; objek[10].y := 225;
objek[11].x := 200; objek[11].y := 250;
objek[12].x := 225; objek[12].y := 225;
FormShow(Sender);
end;
procedure TForm1.FormShow(Sender: TObject);
var
i: integer;
begin
Image1.Canvas.Rectangle(0,0,Image1.Width,Image1.Height);
Image1.Canvas.MoveTo(objek[3].x,objek[3].y);
for i:=1 to 3 do
begin
Image1.Canvas.LineTo(objek[i].x,objek[i].y);
end;
Image1.Canvas.MoveTo(objek[6].x,objek[6].y);
for i:=4 to 6 do
begin
Image1.Canvas.LineTo(objek[i].x,objek[i].y);
end;
Image1.Canvas.MoveTo(objek[8].x,objek[8].y);
for i:=7 to 8 do
begin
Image1.Canvas.LineTo(objek[i].x,objek[i].y);
end;
Image1.Canvas.MoveTo(objek[10].x,objek[10].y);
for i:=9 to 10 do
begin
Image1.Canvas.LineTo(objek[i].x,objek[i].y);
end;
Image1.Canvas.MoveTo(objek[12].x,objek[12].y);
for i :=11 to 12 do
begin
Image1.Canvas.LineTo(objek[i].x,objek[i].y);
end;
end;
initialization
{$I unit1.lrs}
end.

unit Unit1;
{$mode objfpc}{$H+}
interface
uses  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,  StdCtrls, ExtCtrls;
type
{ TForm1 }
TForm1 = class(TForm)    Button1: TButton;    Button10: TButton;    Button2: TButton;    Button3: TButton;    Button4: TButton;    Button5: TButton;    Button6: TButton;    Button7: TButton;    Button8: TButton;    Button9: TButton;    GroupBox1: TGroupBox;    GroupBox2: TGroupBox;    GroupBox3: TGroupBox;    Image1: TImage;    Panel1: TPanel;    procedure Button10Click(Sender: TObject);    procedure Button1Click(Sender: TObject);    procedure Button2Click(Sender: TObject);    procedure Button3Click(Sender: TObject);    procedure Button4Click(Sender: TObject);    procedure Button5Click(Sender: TObject);    procedure Button6Click(Sender: TObject);    procedure Button7Click(Sender: TObject);    procedure Button8Click(Sender: TObject);    procedure Button9Click(Sender: TObject);    procedure FormActivate(Sender: TObject);    procedure FormShow(Sender: TObject);  private    { private declarations }  public    { public declarations }  end;
type  elemen=record  x,y:integer;  end;
var  Form1: TForm1;  objek: array[1..13] of elemen;  Tempobjek : array[1..13] of elemen;  sdt : real;  n, m, i : Integer;
implementation
{ TForm1 }
procedure TForm1.Button10Click(Sender: TObject);begin  Close;
end;
procedure TForm1.Button1Click(Sender: TObject);begin    for i:=1 to 12 do    objek[i].y:=objek[i].y-5;    FormShow(Sender);end;
procedure TForm1.Button2Click(Sender: TObject);begin   for i:=1 to 12 do   objek[i].x:=objek[i].x+5;   FormShow(Sender);end;
procedure TForm1.Button3Click(Sender: TObject);begin   for i:=1 to 12 do   objek[i].y:=objek[i].y+5;   FormShow(Sender);end;
procedure TForm1.Button4Click(Sender: TObject);begin  for i:=1 to 12 do  objek[i].x:=objek[i].x-5;  FormShow(Sender);end;
procedure TForm1.Button5Click(Sender: TObject);begin  for i:=1 to 12 doBegin     objek[i].y:=objek[i].y * 2;     objek[i].x:=objek[i].x * 2;end;FormShow(Sender);end;
procedure TForm1.Button6Click(Sender: TObject);begin  for i:=1 to 12 doBegin     objek[i].y:=objek[i].y div 2;     objek[i].x:=objek[i].x div 2;end;FormShow(Sender);end;
procedure TForm1.Button7Click(Sender: TObject);beginfor i := 1 to 12 dobeginn := objek[3].x;m := objek[3].y;objek[i].x:=objek[i].x-n;objek[i].y:=objek[i].y-m;sdt:=10*PI/180;Tempobjek[i].x:=round(objek[i].x*cos(sdt)-objek[i].y*sin(sdt));Tempobjek[i].y:=round(objek[i].x*sin(sdt)+objek[i].y*cos(sdt));objek[i]:=Tempobjek[i];objek[i].x:=objek[i].x+n;objek[i].y:=objek[i].y+m;end;FormShow(Sender);end;
procedure TForm1.Button8Click(Sender: TObject);beginfor i := 1 to 12 dobeginobjek[i].x:=objek[i].x-Image1.Width div 2;objek[i].y:=objek[i].y-Image1.Height div 2;sdt:=10*PI/180;Tempobjek[i].x:=Round(objek[i].x * cos(sdt)-objek[i].y * sin(sdt));Tempobjek[i].y:=Round(objek[i].x * sin(sdt)+objek[i].y * cos(sdt));objek[i].x:=Tempobjek[i].x;objek[i].y:=Tempobjek[i].y;objek[i].x:=objek[i].x+Image1.Width div 2;objek[i].y:=objek[i].y+Image1.Height div 2;end;FormShow(Sender);end;procedure TForm1.Button9Click(Sender: TObject);begin   FormActivate(Sender);end;  procedure TForm1.FormActivate(Sender: TObject);begin   objek[1].x := 250; objek[1].y := 150;   objek[2].x := 300; objek[2].y := 250;   objek[3].x := 200; objek[3].y := 250;
objek[4].x := 275; objek[4].y := 125;   objek[5].x := 325; objek[5].y := 225;   objek[6].x := 225; objek[6].y := 225;
objek[7].x := 250; objek[7].y := 150;   objek[8].x := 275; objek[8].y := 125;
objek[9].x := 300; objek[9].y := 250;   objek[10].x := 325; objek[10].y := 225;
objek[11].x := 200; objek[11].y := 250;   objek[12].x := 225; objek[12].y := 225;   FormShow(Sender);end;
procedure TForm1.FormShow(Sender: TObject);
var  i: integer;begin     Image1.Canvas.Rectangle(0,0,Image1.Width,Image1.Height);     Image1.Canvas.MoveTo(objek[3].x,objek[3].y);for i:=1 to 3 dobegin     Image1.Canvas.LineTo(objek[i].x,objek[i].y);end;    Image1.Canvas.MoveTo(objek[6].x,objek[6].y);for i:=4 to 6 dobegin     Image1.Canvas.LineTo(objek[i].x,objek[i].y);end;    Image1.Canvas.MoveTo(objek[8].x,objek[8].y);for i:=7 to 8 dobegin     Image1.Canvas.LineTo(objek[i].x,objek[i].y);end;    Image1.Canvas.MoveTo(objek[10].x,objek[10].y);for i:=9 to 10 dobegin     Image1.Canvas.LineTo(objek[i].x,objek[i].y);end;    Image1.Canvas.MoveTo(objek[12].x,objek[12].y);for i :=11 to 12 dobegin     Image1.Canvas.LineTo(objek[i].x,objek[i].y);end;end;

initialization  {$I unit1.lrs}
end.

cornelius henry

123070237

unit Unit1;{$mode objfpc}{$H+}interfaceusesClasses, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,StdCtrls, ExtCtrls;type{ TForm1 }TForm1 = class(TForm)Button1: TButton;Button10: TButton;Button2: TButton;Button3: TButton;Button4: TButton;Button5: TButton;Button6: TButton;Button7: TButton;Button8: TButton;Button9: TButton;GroupBox1: TGroupBox;GroupBox2: TGroupBox;GroupBox3: TGroupBox;Image1: TImage;Panel1: TPanel;procedure Button10Click(Sender: TObject);procedure Button1Click(Sender: TObject);procedure Button2Click(Sender: TObject);procedure Button3Click(Sender: TObject);procedure Button4Click(Sender: TObject);procedure Button5Click(Sender: TObject);procedure Button6Click(Sender: TObject);procedure Button7Click(Sender: TObject);procedure Button8Click(Sender: TObject);procedure Button9Click(Sender: TObject);procedure FormActivate(Sender: TObject);procedure FormShow(Sender: TObject);private{ private declarations }public{ public declarations }end;typeelemen=recordx,y:integer;end;varForm1: TForm1;objek: array[1..13] of elemen;Tempobjek : array[1..13] of elemen;sdt : real;n, m, i : Integer;implementation{ TForm1 }procedure TForm1.Button10Click(Sender: TObject);beginClose;end;procedure TForm1.Button1Click(Sender: TObject);beginfor i:=1 to 12 doobjek[i].y:=objek[i].y-5;FormShow(Sender);end;procedure TForm1.Button2Click(Sender: TObject);beginfor i:=1 to 12 doobjek[i].x:=objek[i].x+5;FormShow(Sender);end;procedure TForm1.Button3Click(Sender: TObject);beginfor i:=1 to 12 doobjek[i].y:=objek[i].y+5;FormShow(Sender);end;procedure TForm1.Button4Click(Sender: TObject);beginfor i:=1 to 12 doobjek[i].x:=objek[i].x-5;FormShow(Sender);end;procedure TForm1.Button5Click(Sender: TObject);beginfor i:=1 to 12 doBeginobjek[i].y:=objek[i].y * 2;objek[i].x:=objek[i].x * 2;end;FormShow(Sender);end;procedure TForm1.Button6Click(Sender: TObject);beginfor i:=1 to 12 doBeginobjek[i].y:=objek[i].y div 2;objek[i].x:=objek[i].x div 2;end;FormShow(Sender);end;procedure TForm1.Button7Click(Sender: TObject);beginfor i := 1 to 12 dobeginn := objek[3].x;m := objek[3].y;objek[i].x:=objek[i].x-n;objek[i].y:=objek[i].y-m;sdt:=10*PI/180;Tempobjek[i].x:=round(objek[i].x*cos(sdt)-objek[i].y*sin(sdt));Tempobjek[i].y:=round(objek[i].x*sin(sdt)+objek[i].y*cos(sdt));objek[i]:=Tempobjek[i];objek[i].x:=objek[i].x+n;objek[i].y:=objek[i].y+m;end;FormShow(Sender);end;procedure TForm1.Button8Click(Sender: TObject);beginfor i := 1 to 12 dobeginobjek[i].x:=objek[i].x-Image1.Width div 2;objek[i].y:=objek[i].y-Image1.Height div 2;sdt:=10*PI/180;Tempobjek[i].x:=Round(objek[i].x * cos(sdt)-objek[i].y * sin(sdt));Tempobjek[i].y:=Round(objek[i].x * sin(sdt)+objek[i].y * cos(sdt));objek[i].x:=Tempobjek[i].x;objek[i].y:=Tempobjek[i].y;objek[i].x:=objek[i].x+Image1.Width div 2;objek[i].y:=objek[i].y+Image1.Height div 2;end;FormShow(Sender);end;procedure TForm1.Button9Click(Sender: TObject);beginFormActivate(Sender);end;procedure TForm1.FormActivate(Sender: TObject);beginobjek[1].x := 250; objek[1].y := 150;objek[2].x := 300; objek[2].y := 250;objek[3].x := 200; objek[3].y := 250;objek[4].x := 275; objek[4].y := 125;objek[5].x := 325; objek[5].y := 225;objek[6].x := 225; objek[6].y := 225;objek[7].x := 250; objek[7].y := 150;objek[8].x := 275; objek[8].y := 125;objek[9].x := 300; objek[9].y := 250;objek[10].x := 325; objek[10].y := 225;objek[11].x := 200; objek[11].y := 250;objek[12].x := 225; objek[12].y := 225;FormShow(Sender);end;procedure TForm1.FormShow(Sender: TObject);vari: integer;beginImage1.Canvas.Rectangle(0,0,Image1.Width,Image1.Height);Image1.Canvas.MoveTo(objek[3].x,objek[3].y);for i:=1 to 3 dobeginImage1.Canvas.LineTo(objek[i].x,objek[i].y);end;Image1.Canvas.MoveTo(objek[6].x,objek[6].y);for i:=4 to 6 dobeginImage1.Canvas.LineTo(objek[i].x,objek[i].y);end;Image1.Canvas.MoveTo(objek[8].x,objek[8].y);for i:=7 to 8 dobeginImage1.Canvas.LineTo(objek[i].x,objek[i].y);end;Image1.Canvas.MoveTo(objek[10].x,objek[10].y);for i:=9 to 10 dobeginImage1.Canvas.LineTo(objek[i].x,objek[i].y);end;Image1.Canvas.MoveTo(objek[12].x,objek[12].y);for i :=11 to 12 dobeginImage1.Canvas.LineTo(objek[i].x,objek[i].y);end;end;initialization{$I unit1.lrs}end.

unit Unit1;{$mode objfpc}{$H+}interfaceusesClasses, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,StdCtrls, ExtCtrls;type{ TForm1 }TForm1 = class(TForm)Button1: TButton;Button10: TButton;Button2: TButton;Button3: TButton;Button4: TButton;Button5: TButton;Button6: TButton;Button7: TButton;Button8: TButton;Button9: TButton;GroupBox1: TGroupBox;GroupBox2: TGroupBox;GroupBox3: TGroupBox;Image1: TImage;Panel1: TPanel;procedure Button10Click(Sender: TObject);procedure Button1Click(Sender: TObject);procedure Button2Click(Sender: TObject);procedure Button3Click(Sender: TObject);procedure Button4Click(Sender: TObject);procedure Button5Click(Sender: TObject);procedure Button6Click(Sender: TObject);procedure Button7Click(Sender: TObject);procedure Button8Click(Sender: TObject);procedure Button9Click(Sender: TObject);procedure FormActivate(Sender: TObject);procedure FormShow(Sender: TObject);private{ private declarations }public{ public declarations }end;typeelemen=recordx,y:integer;end;varForm1: TForm1;objek: array[1..13] of elemen;Tempobjek : array[1..13] of elemen;sdt : real;n, m, i : Integer;implementation{ TForm1 }procedure TForm1.Button10Click(Sender: TObject);beginClose;end;procedure TForm1.Button1Click(Sender: TObject);beginfor i:=1 to 12 doobjek[i].y:=objek[i].y-5;FormShow(Sender);end;procedure TForm1.Button2Click(Sender: TObject);beginfor i:=1 to 12 doobjek[i].x:=objek[i].x+5;FormShow(Sender);end;procedure TForm1.Button3Click(Sender: TObject);beginfor i:=1 to 12 doobjek[i].y:=objek[i].y+5;FormShow(Sender);end;procedure TForm1.Button4Click(Sender: TObject);beginfor i:=1 to 12 doobjek[i].x:=objek[i].x-5;FormShow(Sender);end;procedure TForm1.Button5Click(Sender: TObject);beginfor i:=1 to 12 doBeginobjek[i].y:=objek[i].y * 2;objek[i].x:=objek[i].x * 2;end;FormShow(Sender);end;procedure TForm1.Button6Click(Sender: TObject);beginfor i:=1 to 12 doBeginobjek[i].y:=objek[i].y div 2;objek[i].x:=objek[i].x div 2;end;FormShow(Sender);end;procedure TForm1.Button7Click(Sender: TObject);beginfor i := 1 to 12 dobeginn := objek[3].x;m := objek[3].y;objek[i].x:=objek[i].x-n;objek[i].y:=objek[i].y-m;sdt:=10*PI/180;Tempobjek[i].x:=round(objek[i].x*cos(sdt)-objek[i].y*sin(sdt));Tempobjek[i].y:=round(objek[i].x*sin(sdt)+objek[i].y*cos(sdt));objek[i]:=Tempobjek[i];objek[i].x:=objek[i].x+n;objek[i].y:=objek[i].y+m;end;FormShow(Sender);end;procedure TForm1.Button8Click(Sender: TObject);beginfor i := 1 to 12 dobeginobjek[i].x:=objek[i].x-Image1.Width div 2;objek[i].y:=objek[i].y-Image1.Height div 2;sdt:=10*PI/180;Tempobjek[i].x:=Round(objek[i].x * cos(sdt)-objek[i].y * sin(sdt));Tempobjek[i].y:=Round(objek[i].x * sin(sdt)+objek[i].y * cos(sdt));objek[i].x:=Tempobjek[i].x;objek[i].y:=Tempobjek[i].y;objek[i].x:=objek[i].x+Image1.Width div 2;objek[i].y:=objek[i].y+Image1.Height div 2;end;FormShow(Sender);end;procedure TForm1.Button9Click(Sender: TObject);beginFormActivate(Sender);end;procedure TForm1.FormActivate(Sender: TObject);beginobjek[1].x := 250; objek[1].y := 150;objek[2].x := 300; objek[2].y := 250;objek[3].x := 200; objek[3].y := 250;objek[4].x := 275; objek[4].y := 125;objek[5].x := 325; objek[5].y := 225;objek[6].x := 225; objek[6].y := 225;objek[7].x := 250; objek[7].y := 150;objek[8].x := 275; objek[8].y := 125;objek[9].x := 300; objek[9].y := 250;objek[10].x := 325; objek[10].y := 225;objek[11].x := 200; objek[11].y := 250;objek[12].x := 225; objek[12].y := 225;FormShow(Sender);end;procedure TForm1.FormShow(Sender: TObject);vari: integer;beginImage1.Canvas.Rectangle(0,0,Image1.Width,Image1.Height);Image1.Canvas.MoveTo(objek[3].x,objek[3].y);for i:=1 to 3 dobeginImage1.Canvas.LineTo(objek[i].x,objek[i].y);end;Image1.Canvas.MoveTo(objek[6].x,objek[6].y);for i:=4 to 6 dobeginImage1.Canvas.LineTo(objek[i].x,objek[i].y);end;Image1.Canvas.MoveTo(objek[8].x,objek[8].y);for i:=7 to 8 dobeginImage1.Canvas.LineTo(objek[i].x,objek[i].y);end;Image1.Canvas.MoveTo(objek[10].x,objek[10].y);for i:=9 to 10 dobeginImage1.Canvas.LineTo(objek[i].x,objek[i].y);end;Image1.Canvas.MoveTo(objek[12].x,objek[12].y);for i :=11 to 12 dobeginImage1.Canvas.LineTo(objek[i].x,objek[i].y);end;end;initialization{$I unit1.lrs}end.

Advertisement

Leave a Comment »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Theme: Rubric. Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.