Pie

Zeichnet einen gefüllten Ellipsensektor, der einem Rechteck mit den Ecken (x1,y1) und (x2,y2) eingeschrieben ist. Die Sektorgrenzen werden durch die Linien aus dem Zentrum der Ellipse abgeschnitten, die zu zwei Punkten mit den Koordinaten (x3,y3) und (x4,y4) gezogen werden.

void  Pie(
   int         x1,      // X-Koordinate der linken oberen Ecke des Rechtecks
   int         y1,      // Y-Koordinate der linken oberen Ecke des Rechtecks
   int         x2,      // X-Koordinate der rechten unteren Ecke des Rechtecks
   int         y2,      // Y-Koordinate der rechten unteren Ecke des Rechtecks
   int         x3,      // X-Koordinate des ersten Punktes für die Bestimmung der Grenze des Bogens 
   int         y3,      // Y-Koordinate des ersten Punktes für die Bestimmung der Grenze des Bogens
   int         x4,      // X-Koordinate des zweiten Punktes für die Bestimmung der Grenze des Bogens
   int         y4,      // Y-Koordinate des zweiten Punktes für die Bestimmung der Grenze des Bogens
   const uint  clr,     // Farbe der Linie
   const uint  fill_clr // Farbe der Füllung
   );

Parameter

x1

[in]  X-Koordinate der linken oberen Ecke, die das Rechteck bestimmt.

y1

[in]  Y-Koordinate der linken oberen Ecke, die das Rechteck bestimmt.

x2

[in]  X-Koordinate der rechten unteren Ecke, die das Rechteck bestimmt.

y2

[in]  Y-Koordinate der rechten unteren Ecke, die das Rechteck bestimmt.

x3

[in]  X-Koordinate des ersten Punktes, zu welchem eine Linie aus dem Zentrum des Rechtecks gezogen wurde, um die Grenze des Bogens zu erhalten.

y3

[in]  Y-Koordinate des ersten Punktes, zu welchem eine Linie aus dem Zentrum des Rechtecks gezogen wurde, um die Grenze des Bogens zu erhalten.

x4

[in]  X-Koordinate des zweiten Punktes, zu welchem eine Linie aus dem Zentrum des Rechtecks gezogen wurde, um die Grenze des Bogens zu erhalten.

y4

[in]  Y-Koordinate des zweiten Punktes, zu welchem eine Linie aus dem Zentrum des Rechtecks gezogen wurde, um die Grenze des Bogens zu erhalten.

clr

[in]  Farbe der Sektorgrenze im ARGB-Format.

fill_clr

[in]  Farbe der Sektorfüllung im ARGB-Format. Für die Umwandlung einer Farbe ins ARGB-Format verwenden Sie bitte die Funktion ColorToARGB().

 

Zeichnet einen gefüllten Ellipsensektor mit dem Zentrum im Punkt (x,y), der in das Rechteck mit den Radien rx und ry eingeschrieben ist. Die Sektorgrenzen werden durch die Linien aus dem Zentrum der Ellipse angeschnitten, die durch die Winkel fi3 und fi4 bestimmt werden.

void  Pie(
   int         x,       // X-Koordinate des Zentrums der Ellipse
   int         y,       // Y-Koordinate des Zentrums der Ellipse
   int         rx,      // Radius der Ellipse nach der X-Koordinate
   int         ry,      // Radius der Ellipse nach der Y-Koordinate
   int         fi3,     // Winkel eines Strahls aus dem Zentrum der Ellipse, der die erste Grenze des Bogens bestimmt
   int         fi4,     // Winkel eines Strahls aus dem Zentrum der Ellipse, der die zweite Grenze des Bogens bestimmt
   const uint  clr,     // Farbe der Linie
   const uint  fill_clr // Farbe der Füllung
   );

Zeichnet einen gefüllten Ellipsensektor mit dem Zentrum im Punkt (x,y), der in ein Rechteck mit den Radien rx und ry eingeschrieben ist, und gibt die Koordinaten der Grenze des Bogens zurück. Die Sektorgrenzen werden durch die Linien aus dem Zentrum der Ellipse angeschnitten, die durch die Winkel fi3 und fi4 bestimmt werden.

void  Pie(
   int         x,       // X-Koordinate des Zentrums der Ellipse
   int         y,       // Y-Koordinate des Zentrums der Ellipse
   int         rx,      // Radius der Ellipse nach der X-Koordinate
   int         ry,      // Radius der Ellipse nach der Y-Koordinate
   int         fi3,     // Winkel eines Strahls aus dem Zentrum der Ellipse, der die erste Grenze des Bogens bestimmt
   int         fi4,     // Winkel eines Strahls aus dem Zentrum der Ellipse, der die zweite Grenze des Bogens bestimmt
   int&        x3,      // X-Koordinate der ersten Grenze des Bogens
   int&        y3,      // Y-Koordinate der ersten Grenze des Bogens
   int&        x4,      // X-Koordinate der zweiten Grenze des Bogens
   int&        y4,      // Y-Koordinate der zweiten Grenze des Bogens
   const uint  clr,     // Farbe der Linie
   const uint  fill_clr // Farbe der Füllung
   );

Parameter

x

[in]  X-Koordinate des Zentrums der Ellipse.

y

[in]  Y-Koordinate des Zentrums der Ellipse.

rx

[in]  Radius der Ellipse nach der X-Koordinate, in Pixel.

ry

[in]  Radius der Ellipse nach der X-Koordinate, in Pixel.

fi3

[in]  Winkel in Radianten, der die erste Grenze des Bogens definiert

fi4

[in]  Winkel in Radianten, der die zweite Grenze des Bogens definiert

x3

[out] Variable für das Erhalten der X-Koordinate der ersten Grenze des Bogens.

y3

[out] Variable für das Erhalten der Y-Koordinate der ersten Grenze des Bogens.

x4

[out] Variable für das Erhalten der X-Koordinate der zweiten Grenze des Bogens.

y4

[out] Variable für das Erhalten der Y-Koordinate der zweiten Grenze des Bogens.

clr

[in]  Farbe der Sektorgrenze im ARGB-Format.

fill_clr

[in]  Farbe der Sektorfüllung im ARGB-Format. Für die Umwandlung einer Farbe ins ARGB-Format verwenden Sie bitte die Funktion ColorToARGB().

Beispiele für das Aufruf der Methoden der Klasse:

#include <Canvas\Canvas.mqh>
CCanvas canvas;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   int      Width=600;
   int      Height=400;
//--- create canvas
   if(!canvas.CreateBitmapLabel(0,0,"CirclesCanvas",30,30,Width,Height))
     {
      Print("Error creating canvas: ",GetLastError());
     }
//--- clear canvas
   canvas.Erase(clrWhite);
//--- draw rectangle
   canvas.Rectangle(215-190,215-120,215+190,215+120,clrGray);
//--- draw first pie
   canvas.Pie(215,215, 190,120,M_PI_4,2*M_PI-M_PI_4,ColorToARGB(clrBlue),ColorToARGB(clrRed));
//--- draw second pie
   canvas.Pie(215,215, 190,120,2*M_PI-M_PI_4,2*M_PI+M_PI_4,ColorToARGB(clrGreen),ColorToARGB(clrGreen));
//--- show updated canvas
   canvas.Update();   
   DebugBreak();
  }