Arc

Desenha o arco de uma elipse inserida no retângulo com cantos (x1,y1) e (x2,y2). Os limites do arco são cortados por linhas do centro da elipse que se estendem para dois pontos com as coordenadas (x3,y3) e (x4,Y4).

void  Arc(
   int         x1,      // coordenada X do canto superior esquerdo do retângulo
   int         y1,      // coordenada Y do canto superior esquerdo do retângulo
   int         x2,      // coordenada X do canto inferior direito do retângulo
   int         y2,      // coordenada Y do canto inferior direito do retângulo
   int         x3,      // coordenada X do primeiro ponto para encontrar os limites do arco
   int         y3,      // coordenada Y do primeiro ponto para encontrar os limites do arco
   int         x4,      // coordenada X do segundo ponto para encontrar os limites do arco
   int         y4,      // coordenada Y do segundo ponto para encontrar os limites do arco
   const uint  clr      // cor
   );

Parâmetros

x1

[in]  Coordenada X do canto superior esquerdo que define um retângulo.

y1

[in]  Coordenada Y do canto superior esquerdo que define um retângulo.

x2

[in]  Coordenada X do canto inferior direito que define um retângulo.

y2

[in]  Coordenada Y do canto inferior direito que define um retângulo.

x3

[in]  Coordenada X do primeiro ponto até ao qual é traçada a linha do centro do retângulo para encontrar os limites do arco.

y3

[in]  Coordenada Y do primeiro ponto até ao qual é traçada a linha do centro do retângulo para encontrar os limites do arco.

x4

[in]  Coordenada X do segundo ponto até ao qual é traçada a linha do centro do retângulo para encontrar os limites do arco.

y4

[in]  Coordenada Y do segundo ponto até ao qual é traçada a linha do centro do retângulo para encontrar os limites do arco.

clr

[in]  Cor no formato ARGB. Para modificar a cor para o formato ARGB, use a função ColorToARGB().

 

Desenha o arco de uma elipse centrado em (x,y), inscrita num retângulo com raios rx e ry. Os limites do arco são cortados por linhas do centro da elipse determinadas pelos ângulos fi3 e fi4.

void  Arc(
   int         x,       // coordenada X do centro da elipse
   int         y,       // coordenada Y do centro da elipse
   int         rx,      // raio da elipse na coordenada X
   int         ry,      // raio da elipse na coordenada Y
   int         fi3,     // ângulo - da linha que parte do centro da elipse - que define o primeiro limite do arco
   int         fi4,     // ângulo - da linha que parte do centro da elipse - que define o segundo limite do arco
   const uint  clr      // cor
   );

Desenha o arco de uma elipse centrado em (x,y), inscrito num retângulo com raios rx e ry, e retorna as coordenadas dos limites do arco. Os limites do arco são cortados por linhas do centro da elipse determinadas pelos ângulos fi3 e fi4.

void  Arc(
   int         x,       // coordenada X do centro da elipse
   int         y,       // coordenada Y do centro da elipse
   int         rx,      // raio da elipse na coordenada X
   int         ry,      // raio da elipse na coordenada Y
   int         fi3,     // ângulo - da linha que parte do centro da elipse - que define o primeiro limite do arco
   int         fi4,     // ângulo - da linha que parte do centro da elipse - que define o segundo limite do arco
   int&        x3,      // coordenada X do primeiro limite do arco
   int&        y3,      // coordenada Y do primeiro limite do arco
   int&        x4,      // coordenada X do segundo limite do arco
   int&        y4,      // coordenada Y do segundo limite do arco
   const uint  clr      // cor
   );

Parâmetros

x

[in]  Coordenada X do centro da elipse.

y

[in]  Coordenada Y do centro da elipse.

rx

[in]  Raio da elipse na coordenada X, em pixels.

ry

[in]  Raio da elipse na coordenada Y, em pixels.

fi3

[in]  Ângulo em radianos que define o primeiro limite do arco

fi4

[in]  Ângulo em radianos que define o segundo limite do arco

x3

[out] Variável para obter a coordenada X do primeiro limite do arco.

y3

[out] Variável para obter a coordenada Y do segundo limite do arco.

x4

[out] Variável para obter a coordenada X do segundo limite do arco.

y4

[out] Variável para obter a coordenada Y do segundo limite do arco.

clr

[in]  Cor no formato ARGB. Para modificar a cor para o formato ARGB, use a função ColorToARGB().

Exemplos de chamadas de métodos de classe:

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