Arc

(x1,y1) ve (x2,y2) köşe koordinatlarıyla tanımlanan bir dikdörtgen içinde bir elips yayı çizer. Yay sınırları elips merkezinden gelen çizgilerle – (x3,y3) ve (x4,y4) koordinatlarıyla – kesilir.

void  Arc(
   int         x1,      // dikdörtgenin sol üst köşesinin X koordinatı
   int         y1,      // dikdörtgenin sol üst köşesinin Y koordinatı
   int         x2,      // dikdörtgenin ssağ alt köşesinin X koordinatı
   int         y2,      // dikdörtgenin ssağ alt köşesinin Y koordinatı
   int         x3,      // yay sınırını belirleyen ilk noktanın X koordinatı
   int         y3,      // yay sınırını belirleyen ilk noktanın Y koordinatı
   int         x4,      // yay sınırını belirleyen ikinci noktanın X koordinatı
   int         y4,      // yay sınırını belirleyen ikinci noktanın Y koordinatı
   const uint  clr      // renk
   );

Parametreler

x1

[in]  Dikdörtgenin sol üst köşesinin X koordinatı.

y1

[in]  Dikdörtgenin sol üst köşesinin Y koordinatı.

x2

[in]  Dikdörtgenin sağ alt köşesinin X koordinatı.

y2

[in]  Dikdörtgenin sağ alt köşesinin Y koordinatı.

x3

[in]  Dikdörtgen merkezinden gelip yay sınırını belirleyen çizgi için, ilk noktanın X koordinatı.

y3

[in]  Dikdörtgen merkezinden gelip yay sınırını belirleyen çizgi için, ilk noktanın Y koordinatı.

x4

[in]  Dikdörtgen merkezinden gelip yay sınırını belirleyen çizgi için, ikinci noktanın X koordinatı.

y4

[in]  Dikdörtgen merkezinden gelip yay sınırını belirleyen çizgi için, ikinci noktanın Y koordinatı.

clr

[in]  ARGB biçimli renk. Rengi argb biçimine dönüştürmek için ColorToARGB() fonksiyonunu kullanın.

 

rx ve ry uzunlukları ile tanımlı dikdörtgen içinde, (x,y) merkezli elipsin bir yayını çizer. Yay sınırları elips merkezinden gelen fi3 ve fi4 açılarına sahip ışınlarla kesilir.

void  Arc(
   int         x,       // elips merkezinin X koordinatı
   int         y,       // elips merkezinin Y koordinatı
   int         rx,      // elipsin yatay (X ekseni)yarıçapı
   int         ry,      // elipsin dikey (Y ekseni)yarıçapı
   int         fi3,     // elips yayının ilk noktasının açısı
   int         fi4,     // elips yayının ikinci noktasının açısı
   const uint  clr      // renk
   );

rx ve ry uzunlukları ile tanımlı dikdörtgen içinde, (x,y) merkezli elipsin bir yayını çizer ve yay sınırlarının koordinatlarına dönüş yapar. Yay sınırları elips merkezinden gelen fi3 ve fi4 açılarına sahip ışınlarla kesilir.

void  Arc(
   int         x,       // elips merkezinin X koordinatı
   int         y,       // elips merkezinin Y koordinatı
   int         rx,      // elipsin yatay (X ekseni)yarıçapı
   int         ry,      // elipsin dikey (Y ekseni)yarıçapı
   int         fi3,     // elips yayının ilk noktasının açısı
   int         fi4,     // elips yayının ikinci noktasının açısı
   int&        x3,      // yayın ilk sınırının X koordinatı
   int&        y3,      // yayın ilk sınırının Y koordinatı
   int&        x4,      // yayın ikinci sınırının X koordinatı
   int&        y4,      // yayın ikinci sınırının Y koordinatı
   const uint  clr      // renk
   );

Parametreler

x

[in]  Elips merkezinin X koordinatı.

y

[in]  Elips merkezinin Y koordinatı.

rx

[in]  Elipsin X eksenindeki yarı çapı (piksel cinsinden).

ry

[in]  Elipsin Y eksenindeki yarı çapı (piksel cinsinden).

fi3

[in]  İlk yay sınırını belirten açının radyan cinsinden değeri.

fi4

[in]  İkinci yay sınırını belirten açının radyan cinsinden değeri.

x3

[out] İlk yay sınırının X koordinatını alacak değişken.

y3

[out] İlk yay sınırının Y koordinatını alacak değişken.

x4

[out] İkinci yay sınırının X koordinatını alacak değişken.

y4

[out] İkinci yay sınırının Y koordinatını alacak değişken.

clr

[in]  ARGB biçimli renk. Rengi argb biçimine dönüştürmek için ColorToARGB() fonksiyonunu kullanın.

Sınıf yöntemlerinin çağrılmasına örnek:

#include <Canvas\Canvas.mqh>
CCanvas canvas;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   int      Width=600;
   int      Height=400;
//--- kanvası oluştur
   if(!canvas.CreateBitmapLabel(0,0,"CirclesCanvas",30,30,Width,Height))
     {
      Print("Hata, kanvas oluşturulamadı: ",GetLastError());
     }
//--- kanvası temizle
   canvas.Erase(clrWhite);
//--- dikdörtgen çiz
   canvas.Rectangle(215-190,215-120,215+190,215+120,clrGray);
//--- ilk yayı çiz
   canvas.Arc(215,215, 190,120,M_PI_4,2*M_PI-M_PI_4,ColorToARGB(clrRed));
   int x1,y1,x2,y2;
//--- ikinci yayı çiz
   canvas.Arc(215,215, 190,120,2*M_PI-M_PI_4,2*M_PI+M_PI_4,x1,y1,x2,y2,ColorToARGB(clrGreen));
//--- yay koordinatlarını yazdır
   PrintFormat("Yayın ilk noktası: (%G,%G), yayın ikinci noktası (%G,%G)",x1,y1,x2,y2);
   canvas.CircleAA(x1,y1,3, ColorToARGB(clrRed));
   canvas.CircleAA(x2,y2,3, ColorToARGB(clrBlue));
//--- güncellenen kanvası görüntüle
   canvas.Update();   
  }