Arc

Dibuja un arco de la elipse inscrito en el rectángulo con los ángulos (x1,y1) y (x2,y2). Los límites del arco se cortan con las líneas del centro de la elipse que van a los dos puntos con las coordenadas (x3,y3) y (x4,y4).

void  Arc(
   int         x1,      // coordenada X del ángulo superior izquierdo del rectángulo
   int         y1,      // coordenada Y del ángulo superior izquierdo del rectángulo
   int         x2,      // coordenada X del ángulo inferior derecho del rectángulo
   int         y2,      // coordenada Y del ángulo inferior derecho del rectángulo
   int         x3,      // coordenada X del primer punto para encontrar el límite del arco
   int         y3,      // coordenada Y del primer punto para encontrar el límite del arco
   int         x4,      // coordenada X del segundo punto para encontrar el límite del arco
   int         y4,      // coordenada Y del segundo punto para encontrar el límite del arco
   const uint  clr      // color
   );

Parámetros

x1

[in]  Coordenada X del ángulo superior izquierdo que define el rectángulo.

y1

[in]  Coordenada Y del ángulo superior izquierdo que define el rectángulo.

x2

[in]  Coordenada X del ángulo inferior derecho que define el rectángulo.

y2

[in]  Coordenada Y del ángulo inferior derecho que define el rectángulo.

x3

[in]  Coordenada X del primer punto hacia el que se traza la línea desde el centro del rectángulo para obtener el límite del arco.

y3

[in]  Coordenada Y del primer punto hacia el que se traza la línea desde el centro del rectángulo para obtener el límite del arco.

x4

[in]  Coordenada X del segundo punto hacia el que se traza la línea desde el centro del rectángulo para obtener el límite del arco.

y4

[in]  Coordenada Y del segundo punto hacia el que se traza la línea desde el centro del rectángulo para obtener el límite del arco.

clr

[in]  Color en formato ARGB. Para transformar un color en el formato ARGB, use la función ColorToARGB().

 

Dibuja el arco de la elipse con el centro en el punto (x,y), inscrito en un rectángulo con los radios rx y ry. Los límites del arco se cortan con los rayos desde el centro de la elipse, establecidos con los ángulos fi3 y fi4.

void  Arc(
   int         x,       // coordenada x del centro de la elipse
   int         y,       // coordenada Y del centro de la elipse
   int         rx,      // radio de la elipse según la coordenada X
   int         ry,      // radio de la elipse según la coordenada Y
   int         fi3,     // ángulo del rayo desde el centro de elipse, que establece el primer límite del arco
   int         fi4,     // ángulo del rayo desde el centro de la elipse, que establece el segundo límite del arco
   const uint  clr      // color
   );

Dibuja el arco de la elipse con el centro en el punto (x,y), inscrito en un rectángulo con los radios rx y ry, y retorna las coordenadas de los límites del arco. Los límites del arco se cortan con los rayos desde el centro de la elipse, establecidos con los ángulos fi3 y fi4.

void  Arc(
   int         x,       // coordenada x del centro de la elipse
   int         y,       // coordenada Y del centro de la elipse
   int         rx,      // radio de la elipse según la coordenada X
   int         ry,      // radio de la elipse según la coordenada Y
   int         fi3,     // ángulo del rayo desde el centro de elipse, que establece el primer límite del arco
   int         fi4,     // ángulo del rayo desde el centro de la elipse, que establece el segundo límite del arco
   int&        x3,      // coordenada X del primer límite del arco
   int&        y3,      // coordenada Y del primer límite del arco
   int&        x4,      // coordenada X del segundo límite del arco
   int&        y4,      // coordenada Y del segundo límite del arco
   const uint  clr      // color
   );

Parámetros

x

[in]  Coordenada X del centro de la elipse.

y

[in]  Coordenada Y del centro de la elipse

rx

[in]  Radio de la elipse según la coordenada X, en píxeles.

ry

[in]  Radio de la elipse según la coordenada Y, en píxeles.

fi3

[in]  Ángulo en radianes que establece el primer límite del arco

fi4

[in]  Ángulo en radianes que establece el segundo límite del arco

x3

[out] Variable para obtener la coordenada X del primer límite del arco.

y3

[out] Variable para obtener la coordenada Y del primer límite del arco.

x4

[out] Variable para obtener la coordenada X del segundo límite del arco.

y4

[out] Variable para obtener la coordenada Y del segundo límite del arco.

clr

[in]  Color en formato ARGB. Para transformar un color en el formato ARGB, use la función ColorToARGB().

Ejemplos de llamada de los métodos de clase:

#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();   
  }