Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

canvas.arc

Başlatan bunalmis, 18 Ocak 2010, 11:27:21

z

canvas.Arc(x1,y1,x2,y2,x3,y3,x4,y4);

Arc fonksiyonunda x3,y3,x4,y4 parametreleri ne anlama geliyor?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ahmet2004

Canvas.Arc(x1,y1,х2,у2,х3,у3,х4,у4)




http://shiva16.narod.ru/Unit24.htm

z

Mantigi kuramadim, resmini verdiginiz mantigin yada benzerlerinin gecerli olmasini bekliyorum fakat uygulamada cizilen yay ile olmasini dusundugum yay cok farkli.

Asagida test amacli yazdigim programi goruyorsunuz. Her bir parametre surgulu ayar cubuklarindan degistiriliyor. (Cubuklarin herhangi birindeki degisim Potchange kodunu cagiriyor)

Cizilen yayin sekline anlam veremmiyorum.

unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   x4_: TScrollBar;
   y4_: TScrollBar;
   x1_: TScrollBar;
   y1_: TScrollBar;
   x2_: TScrollBar;
   y2_: TScrollBar;
   x3_: TScrollBar;
   y3_: TScrollBar;
   procedure PotChange(Sender: TObject);
 private
   { Private declarations }
   ShowKey : Boolean;
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.PotChange(Sender: TObject);
var x1,x2,x3,x4,y1,y2,y3,y4:integer;
begin

 x1:=x1_.Position; y1:=y1_.Position;
 x2:=x2_.Position; y2:=y2_.Position;
 x3:=x3_.Position; y3:=y3_.Position;
 x4:=x4_.Position; y4:=y4_.Position;
 canvas.FillRect(Rect(0,0,form1.Width,form1.Height));
 canvas.rectangle(x3,y3,x4,y4);

 canvas.Arc(x1,y1,x2,y2,x3,y3,x4,y4);
end;

end.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ahmet2004

> BOOL Arc(
> HDC hdc, // handle to device context
> int nLeftRect, // x-coord of rectangle's upper-left corner
> int nTopRect, // y-coord of rectangle's upper-left corner
> int nRightRect, // x-coord of rectangle's lower-right corner
> int nBottomRect, // y-coord of rectangle's lower-right corner
> int nXStartArc, // x-coord of first radial ending point
> int nYStartArc, // y-coord of first radial ending point
> int nXEndArc, // x-coord of second radial ending point
> int nYEndArc // y-coord of second radial ending point
> );

x3,y3 ve x4,y4 radyal cinsinden değerler olduğunu gösteriyor C# de.

Sitelerde pek bunun hakkında bilgide yok.

Klein

X1  :   X ekseninde daire (veya elips)   başlangıç noktası
Y1  :  Y ekseninde başlangıç noktası
X2 : Bitiş
Y2 Bitiş.
Buraya kadar anlaşılmayan birşey yoktur sanırım.  Diğer parametrelere 0 verirseniz, Verdiğiniz koordinata bağlı olarak tam daire veya tam elips çizersiniz.  yani çember izersiniz.

Ancak çember değil de yay çizmek istersek o zaman  diğer parametreleri de kullanmamız gerekir.   Aslında yay çizmek için değil , çember çizgisinin bir kısmının silinmesi için kullanılır.   Diğer x ve y koordinatları , dairenin içine veya bir yerine çizilecek bir dörtgenin koordinatlarıdır.  Dairenin çizgisi bu dörtgenin altında kalırsa , çizgi görünmez ve biz de bir yay çizmiş oluruz.

Şöyle örnek vereyim:

Bu kod tam daire çizer.
 Canvas.Arc(250,250, 500, 500, 0 ,0, 0, 0);


Bu kod ise 270 derecelik bir yay çizer. Aslında 360 derecelik yay çizip  90 derecesini siler.
 Canvas.Arc(250,250, 500, 500, 375 ,250, 500, 375);