Arc

Disegna un arco di ellisse inscritto in un rettangolo con angoli a (x1, y1) e (x2, y2). I limiti dell'arco sono tagliati da linee dal centro dell'ellisse, che si estendono a due punti con le coordinate (x3, y3) e (x4, y4).

void  Arc(
   int         x1,      // coordinate X dell' angolo superiore sinistro del rettangolo
   int         y1,      // coordinate Y dell' angolo superiore sinistro del rettangolo
   int         x2,      // coordinate X dell' angolo inferiore destro del rettangolo
   int         y2,      // coordinate Y dell' angolo superiore sinistro del rettangolo
   int         x3,      // coordinate X del primo punto per trovare i limiti dell'arco
   int         y3,      // coordinate Y del primo punto per trovare i limiti dell'arco
   int         x4,      // coordinate X del secondo punto per trovare i limiti dell'arco
   int         y4,      // coordinate Y del secondo punto per trovare i limiti dell'arco
   const uint  clr      // color
   );

Parametri

x1

[in] coordinata X dell'angolo superiore sinistro che forma il rettangolo.

y1

[in] coordinata Y dell'angolo superiore sinistro che forma il rettangolo.

x2

[in] coordinata X dell'angolo in basso a destra che forma il rettangolo.

y2

[in] coordinata Y dell'angolo in basso a destra che forma il rettangolo.

x3

[in] coordinata X del primo punto, al quale viene disegnata una linea dal centro rettangolare per ottenere il limite dell'arco.

y3

[in] coordinata Y del primo punto, al quale viene disegnata una linea dal centro rettangolare per ottenere il limite dell'arco.

x4

[in] coordinata X del secondo punto, al quale viene disegnata una linea dal centro rettangolare per ottenere il limite dell'arco.

y4

[in] coordinata Y del secondo punto, al quale viene disegnata una linea dal centro rettangolare per ottenere il limite dell'arco.

clr

[in] Colore in formato ARGB. Usa la funzione ColorToARGB() per convertire un colore nel formato ARGB.

 

Disegna un arco di ellisse con centro al punto (x, y), inciso in rettangolo, con raggi x e ry. I limiti dell'arco vengono ritagliati dal centro dell'ellisse utilizzando i raggi formati da angoli fi3 e fi4.

void  Arc(
   int         x,       // coordinate X del centro ellisse
   int         y,       // coordinate Y del centro ellisse
   int         rx,      // raggio di ellisse sull'asse X
   int         ry,      // raggio di ellisse sull'asse Y
   int         fi3,     // angolo di raggio dal centro di ellisse, che definisce il primo limite dell'arco
   int         fi4,     // angolo di raggio dal centro di ellisse, che definisce il secondo limite dell'arco
   const uint  clr      // color
   );

Disegna un arco di ellisse con centro al punto (x, y), inciso in rettangolo, con raggi rx e ry e restituisce anche le coordinate dei limiti dell'arco. I limiti dell'arco vengono ritagliati dal centro dell'ellisse utilizzando i raggi formati da angoli fi3 e fi4.

void  Arc(
   int         x,       // coordinate X del centro ellisse
   int         y,       // coordinate Y del centro ellisse
   int         rx,      // raggio di ellisse sull'asse X
   int         ry,      // raggio di ellisse sull'asse Y
   int         fi3,     // angolo di raggio dal centro di ellisse, che definisce il primo limite dell'arco
   int         fi4,     // angolo di raggio dal centro di ellisse, che definisce il secondo limite dell'arco
   int&        x3,      // coordinate X del primo contorno d'arco
   int&        y3,      // coordinate Y del primo contorno d'arco
   int&        x4,      // coordinate X del secondo contorno d'arco
   int&        y4,      // coordinate Y del secondo contorno d'arco
   const uint  clr      // color
   );

Parametri

x

[in] coordinate X del centro ellisse.

y

[in] coordinate Y del centro ellisse.

rx

[in] Raggio dell'ellisse sull'asse Y, in pixel.

ry

[in] Raggio dell'ellisse sull'asse Y, in pixel.

fi3

[in] Angolo in radianti, che definisce il primo limite dell'arco.

fi4

[in] Angolo in radianti, che definisce il secondo limite dell'arco.

x3

[out] Variabile per ottenere la coordinata X del primo limite dell'arco.

y3

[out] Variabile per ottenere la coordinata Y del primo limite dell'arco.

x4

[out] Variabile per ottenere la coordinata X del secondo limite dell'arco.

y4

[out] Variabile per ottenere la coordinata Y del secondo limite dell'arco.

clr

[in] Colore in formato ARGB. Usa la funzione ColorToARGB() per convertire un colore nel formato ARGB.

Esempi di chiamata dei metodi della classe:

#include <Canvas\Canvas.mqh>
CCanvas canvas;
//+------------------------------------------------------------------+
//| Funzione Script Programma Script                             |
//+------------------------------------------------------------------+
void OnStart()
  {
   int      Width=600;
   int      Height=400;
//--- crea canvas
   if(!canvas.CreateBitmapLabel(0,0,"CirclesCanvas",30,30,Width,Height))
     {
      Print("Error creating canvas: ",GetLastError());
     }
//--- pulisce canvas
   canvas.Erase(clrWhite);
//--- disegna rectangle
   canvas.Rectangle(215-190,215-120,215+190,215+120,clrGray);
//--- disegna primo arco
   canvas.Arc(215,215, 190,120,M_PI_4,2*M_PI-M_PI_4,ColorToARGB(clrRed));
   int x1,y1,x2,y2;
//--- disegna secondo arco
   canvas.Arc(215,215, 190,120,2*M_PI-M_PI_4,2*M_PI+M_PI_4,x1,y1,x2,y2,ColorToARGB(clrGreen));
//--- stampa coordinate per arco
   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));
//--- mostra canvas aggiornato
   canvas.Update();   
  }