Arc

Zeichnet einen Ellipsenbogen, der einem Rechteck mit den Ecken (x1,y1) und (x2,y2) eingeschrieben ist. Die Grenzen des Bogens 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  Arc(
   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
   );

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 im ARGB-Format. Für die Umwandlung einer Farbe ins ARGB-Format verwenden Sie bitte die Funktion ColorToARGB().

 

Zeichnet einen Ellipsenbogen mit dem Zentrum im Punkt (x,y), der in das Rechteck mit den Radien rx und ry eingeschrieben ist. Die Grenzen des Bogens werden durch die Strahlen aus dem Zentrum der Ellipse angeschnitten, die durch die Winkel fi3 und fi4 gesetzt werden.

void  Arc(
   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
   );

Zeichnet einen Ellipsenbogen mit dem Zentrum im Punkt (x,y), der in das Rechteck mit den Radien rx und ry eingeschrieben ist, und gibt die Koordinaten der Grenze des Bogens zurück. Die Grenzen des Bogens werden durch die Strahlen aus dem Zentrum der Ellipse angeschnitten, die durch die Winkel fi3 und fi4 gesetzt werden.

void  Arc(
   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
   );

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 Y-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 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 arc
   canvas.Arc(215,215, 190,120,M_PI_4,2*M_PI-M_PI_4,ColorToARGB(clrRed));
   int x1,y1,x2,y2;
//--- draw second arc
   canvas.Arc(215,215, 190,120,2*M_PI-M_PI_4,2*M_PI+M_PI_4,x1,y1,x2,y2,ColorToARGB(clrGreen));
//--- print coordinates of arc 
   PrintFormat("First point of arc at (%G,%G), second point of arc at (%G,%G)",x1,y1,x2,y2);
   canvas.CircleAA(x1,y1,3, ColorToARGB(clrRed));
   canvas.CircleAA(x2,y2,3, ColorToARGB(clrBlue));
//--- show updated canvas
   canvas.Update();   
  }