Delphide Yay Çizme

yusufozakar
17-07-2006, 22:18   |  #1  
OP Taze Üye
Teşekkür Sayısı: 0
7 mesaj
Kayıt Tarihi:Kayıt: Tem 2006

merhaba arakadaşlar. delphide yay çizmeyi bilen varsa bana örnek gönderibilirmi
yusufozakar@gmail.com

3DART
12-10-2006, 09:29   |  #2  
Yeni Üye
Teşekkür Sayısı: 0
36 mesaj
Kayıt Tarihi:Kayıt: Eki 2006

Bu kodlarla parametre girerek istediğin yayı çizdirebilirsin...

Ben grafik programlarımda bunu kullanıyorum...
Oluşturana kadar canım çıkmıştı ama iyi de oldu,şimdi yay çizdirme,daire,elips gibi grafikler vız geliyor...Kahkaha


var
  Form1: TForm1;
  YayAci,X1,X2,Y1,Y2:Real;
  Cozun:Integer;

implementation

{$R *.dfm}

procedure YayCiz(X11,Y11,X22,Y22,Coz:Real);
var Alfa:Real;A,jDeger:Real; R1,R2,x,y:Real;
begin
   Alfa:=0;
   if Coz<3 then
   begin ShowMessage('Cözunurluk cok Kucuk Olamaz...');Exit;end;
   R1:=(X22-X11)/2;R2:=(Y22-Y11)/2;
   jDeger:=360/Coz;
   A:=Pi/180;
   repeat
     x:=(R1*cos(alfa*A));
     y:=(R2*sin(alfa*A));
     if Alfa=0 then
      begin
        Form1.Image1.Canvas.MoveTo(Round(x+X11+R1),Round(y+Y11+R2));
      end;
        Form1.Image1.Canvas.LineTo(Round(x+X11+R1),Round(y+Y11+R2));
      Alfa:=Alfa+jDeger;
   until Alfa>YayAci;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
YayAci:=StrToFloat(Edit1.Text);
Cozun:=StrToInt(Edit2.Text);
X1:=StrToFloat(Edit3.Text);
Y1:=StrToFloat(Edit4.Text);
X2:=StrToFloat(Edit5.Text);
Y2:=StrToFloat(Edit6.Text);
YayCiz(0,0,100,100,Cozun);
end;

end.

3DART
12-10-2006, 09:31   |  #3  
Yeni Üye
Teşekkür Sayısı: 0
36 mesaj
Kayıt Tarihi:Kayıt: Eki 2006

var
  Form1: TForm1;
  YayAci,X1,X2,Y1,Y2:Real;
  Cozun:Integer;

implementation

{$R *.dfm}

procedure YayCiz(X11,Y11,X22,Y22,Coz:Real);
var Alfa:Real;A,jDeger:Real; R1,R2,x,y:Real;
begin
   Alfa:=0;
   if Coz<3 then
   begin ShowMessage('Cözunurluk cok Kucuk Olamaz...');Exit;end;
   R1:=(X22-X11)/2;R2:=(Y22-Y11)/2;
   jDeger:=360/Coz;
   A:=Pi/180;
   repeat
     x:=(R1*cos(alfa*A));
     y:=(R2*sin(alfa*A));
     if Alfa=0 then
      begin
        Form1.Image1.Canvas.MoveTo(Round(x+X11+R1),Round(y+Y11+R2));
      end;
        Form1.Image1.Canvas.LineTo(Round(x+X11+R1),Round(y+Y11+R2));
      Alfa:=Alfa+jDeger;
   until Alfa>YayAci;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
YayAci:=StrToFloat(Edit1.Text);
Cozun:=StrToInt(Edit2.Text);
X1:=StrToFloat(Edit3.Text);
Y1:=StrToFloat(Edit4.Text);
X2:=StrToFloat(Edit5.Text);
Y2:=StrToFloat(Edit6.Text);
YayCiz(X1,Y1,X2,Y2,Cozun);
end;

end.