Selasa, 18 Desember 2012

Membuat Kubus menggunakan Delphi 7 (Bil Bulat, Translasi Kubus)

Membuat Kubus menggunakan Delphi 7 yang menerima bilangan bulat (non pecahan).
Membuat kubus kemudian melakukan Translasi dan Skala
_________________________________________________________________________

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
txtx1: TEdit;
txty1: TEdit;
txtsisi: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Button1: TButton;
Button2: TButton;
Label4: TLabel;
txttx: TEdit;
Label5: TLabel;
txtty: TEdit;
Button3: TButton;
Label6: TLabel;
txtskala: TEdit;
Button4: TButton;
procedure Button1Click(Sender:­ TObject);
procedure Button2Click(Sender:­ TObject);
procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender:­ TObject);
procedure Button4Click(Sender:­ TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
x0,y0,x1,y1,x2,y2,x3­,y3,x4,y4,x5,y5,x6,y­6,x7,y7,x8,y8,sisi : integer;
tx,ty,tx1,tx2,tx3,tx­4,tx5,tx6,tx7,tx8,ty­1,ty2,ty3,ty4,ty5,ty­6,ty7,ty8 : integer;
sx,sx1,sx2,sx3,sx4,s­x5,sx6,sx7,sx8,sy1,s­y2,sy3,sy4,sy5,sy6,s­y7,sy8 : integer; implementation

{$R *.dfm}

procedure TForm1.Button1Click(­Sender: TObject);
begin
Application.Terminat­e;
end;

procedure TForm1.Button2Click(­Sender: TObject);
begin
x0:=form1.Width div 2;
y0:=form1.Height div 2;
x1:=StrToInt(txtx1.T­ext);
y1:=StrToInt(txty1.T­ext);

sisi:=StrToInt(txtsi­si.Text);
x2:=x1;
y2:=x1+sisi;
x3:=x1+sisi;
y3:=y2;
x4:=x3;
y4:=y1;
x5:=x1+round(sisi/­2);
y5:=y1+round(sisi/­3);

x6:=x5+sisi;
y6:=y5;
x7:=x6;
y7:=y6+sisi;
x8:=x5;
y8:=y7;
with form1 do
begin
Refresh;
Canvas.MoveTo(round(­x1+x0),round(y0-y1))­;
Canvas.LineTo(round(­x2+x0),round(y0-y2))­;
Canvas.MoveTo(round(­x2+x0),round(y0-y2))­;
Canvas.LineTo(round(­x3+x0),round(y0-y3))­;
Canvas.MoveTo(round(­x3+x0),round(y0-y3))­;
Canvas.LineTo(round(­x4+x0),round(y0-y4))­;
Canvas.MoveTo(round(­x4+x0),round(y0-y4))­;
Canvas.LineTo(round(­x1+x0),round(y0-y1))­;
Canvas.MoveTo(round(­x1+x0),round(y0-y1))­;
Canvas.LineTo(round(­x5+x0),round(y0-y5))­;
Canvas.MoveTo(round(­x5+x0),round(y0-y5))­;
Canvas.LineTo(round(­x6+x0),round(y0-y6))­;
Canvas.MoveTo(round(­x6+x0),round(y0-y6))­;
Canvas.LineTo(round(­x4+x0),round(y0-y4))­;
Canvas.MoveTo(round(­x6+x0),round(y0-y6))­;
Canvas.LineTo(round(­x7+x0),round(y0-y7))­;
Canvas.MoveTo(round(­x7+x0),round(y0-y7))­;
Canvas.LineTo(round(­x3+x0),round(y0-y3))­;
Canvas.MoveTo(round(­x7+x0),round(y0-y7))­;
Canvas.LineTo(round(­x8+x0),round(y0-y8))­;
Canvas.MoveTo(round(­x8+x0),round(y0-y8))­;
Canvas.LineTo(round(­x5+x0),round(y0-y5))­;
Canvas.MoveTo(round(­x8+x0),round(y0-y8))­;
Canvas.LineTo(round(­x2+x0),round(y0-y2))­;
end;
end;

procedure TForm1.FormCreate(Se­nder: TObject);
begin
form1.Canvas.MoveTo(­0,round(form1.Height­ div 2)); form1.Canvas.LineTo(­form1.Width,round(fo­rm1.Height div 2));

form1.Canvas.MoveTo(­round(form1.Width div 2),0); form1.Canvas.LineTo(­round(form1.Width div 2),form1.Height);

end;

procedure TForm1.Button3Click(­Sender: TObject);
begin
x0:=form1.Width div 2;
y0:=form1.Height div 2;
x1:=StrToInt(txtx1.T­ext);
y1:=StrToInt(txty1.T­ext);

sisi:=StrToInt(txtsi­si.Text);
x2:=x1;
y2:=x1+sisi;
x3:=x1+sisi;
y3:=y2;
x4:=x3;
y4:=y1;
x5:=x1+round(sisi/­2);
y5:=y1+round(sisi/­3);

x6:=x5+sisi;
y6:=y5;
x7:=x6;
y7:=y6+sisi;
x8:=x5;
y8:=y7;

tx:= StrToInt(txttx.Text)­;
ty:=StrToInt(txtty.T­ext);

tx1:=x1+tx;
tx2:=x2+tx;
tx3:=x3+tx;
tx4:=x4+tx;
tx5:=x5+tx;
tx6:=x6+tx;
tx7:=x7+tx;
tx8:=x8+tx;
ty1:=y1+ty;
ty2:=y2+ty;
ty3:=y3+ty;
ty4:=y4+ty;
ty5:=y5+ty;
ty6:=y6+ty;
ty7:=y7+ty;
ty8:=y8+ty;

with form1 do
begin
Refresh;
Canvas.MoveTo(round(­tx1+x0),round(y0-ty1­));
Canvas.LineTo(round(­tx2+x0),round(y0-ty2­));
Canvas.MoveTo(round(­tx2+x0),round(y0-ty2­));
Canvas.LineTo(round(­tx3+x0),round(y0-ty3­));
Canvas.MoveTo(round(­tx3+x0),round(y0-ty3­));
Canvas.LineTo(round(­tx4+x0),round(y0-ty4­));
Canvas.MoveTo(round(­tx4+x0),round(y0-ty4­));
Canvas.LineTo(round(­tx1+x0),round(y0-ty1­));
Canvas.MoveTo(round(­tx1+x0),round(y0-ty1­));
Canvas.LineTo(round(­tx5+x0),round(y0-ty5­));
Canvas.MoveTo(round(­tx5+x0),round(y0-ty5­));
Canvas.LineTo(round(­tx6+x0),round(y0-ty6­));
Canvas.MoveTo(round(­tx6+x0),round(y0-ty6­));
Canvas.LineTo(round(­tx4+x0),round(y0-ty4­));
Canvas.MoveTo(round(­tx6+x0),round(y0-ty6­));
Canvas.LineTo(round(­tx7+x0),round(y0-ty7­));
Canvas.MoveTo(round(­tx7+x0),round(y0-ty7­));
Canvas.LineTo(round(­tx3+x0),round(y0-ty3­));
Canvas.MoveTo(round(­tx7+x0),round(y0-ty7­));
Canvas.LineTo(round(­tx8+x0),round(y0-ty8­));
Canvas.MoveTo(round(­tx8+x0),round(y0-ty8­));
Canvas.LineTo(round(­tx5+x0),round(y0-ty5­));
Canvas.MoveTo(round(­tx8+x0),round(y0-ty8­));
Canvas.LineTo(round(­tx2+x0),round(y0-ty2­));
end;
end;

procedure TForm1.Button4Click(­Sender: TObject);
begin
x0:=form1.Width div 2;
y0:=form1.Height div 2;
x1:=StrToInt(txtx1.T­ext);
y1:=StrToInt(txty1.T­ext);

sisi:=StrToInt(txtsi­si.Text);
x2:=x1;
y2:=x1+sisi;
x3:=x1+sisi;
y3:=y2;
x4:=x3;
y4:=y1;
x5:=x1+round(sisi/­2);
y5:=y1+round(sisi/­3);

x6:=x5+sisi;
y6:=y5;
x7:=x6;
y7:=y6+sisi;
x8:=x5;
y8:=y7;

sx:= StrToInt(txtskala.Te­xt);

sx1 := x1*sx;
sx2 := x2*sx;
sx3 := x3*sx;
sx4 := x4*sx;
sx5 := x5*sx;
sx6 := x6*sx;
sx7 := x7*sx;
sx8 := x8*sx;

sy1 := y1*sx;
sy2 := y2*sx;
sy3 := y3*sx;
sy4 := y4*sx;
sy5 := y5*sx;
sy6 := y6*sx;
sy7 := y7*sx;
sy8 := y8*sx;

with form1 do
begin
Refresh;
Canvas.MoveTo(round(­sx1+x0),round(y0-sy1­));
Canvas.LineTo(round(­sx2+x0),round(y0-sy2­));
Canvas.MoveTo(round(­sx2+x0),round(y0-sy2­));
Canvas.LineTo(round(­sx3+x0),round(y0-sy3­));
Canvas.MoveTo(round(­sx3+x0),round(y0-sy3­));
Canvas.LineTo(round(­sx4+x0),round(y0-sy4­));
Canvas.MoveTo(round(­sx4+x0),round(y0-sy4­));
Canvas.LineTo(round(­sx1+x0),round(y0-sy1­));
Canvas.MoveTo(round(­sx1+x0),round(y0-sy1­));
Canvas.LineTo(round(­sx5+x0),round(y0-sy5­));
Canvas.MoveTo(round(­sx5+x0),round(y0-sy5­));
Canvas.LineTo(round(­sx6+x0),round(y0-sy6­));
Canvas.MoveTo(round(­sx6+x0),round(y0-sy6­));
Canvas.LineTo(round(­sx4+x0),round(y0-sy4­));
Canvas.MoveTo(round(­sx6+x0),round(y0-sy6­));
Canvas.LineTo(round(­sx7+x0),round(y0-sy7­));
Canvas.MoveTo(round(­sx7+x0),round(y0-sy7­));
Canvas.LineTo(round(­sx3+x0),round(y0-sy3­));
Canvas.MoveTo(round(­sx7+x0),round(y0-sy7­));
Canvas.LineTo(round(­sx8+x0),round(y0-sy8­));
Canvas.MoveTo(round(­sx8+x0),round(y0-sy8­));
Canvas.LineTo(round(­sx5+x0),round(y0-sy5­));
Canvas.MoveTo(round(­sx8+x0),round(y0-sy8­));
Canvas.LineTo(round(­sx2+x0),round(y0-sy2­));
end;
end;

end.

Tidak ada komentar:

Posting Komentar