Arc

在(x1,y1)和(x2,y2)位置的矩形上绘制椭圆形弧线。直线从椭圆形中心横切弧形边界,延伸至(x3,y3)和(x4,y4)两个坐标点。

void  Arc(

   int         x1,      // 矩形左上角的 X 坐标

   int         y1,      // 矩形左上角的 Y 坐标

   int         x2,      // 矩形右下角的 X 坐标

   int         y2,      // 矩形右下角的 Y 坐标

   int         x3,      // 找到弧形边界的第一个点的 X 坐标

   int         y3,      // 找到弧形边界的第一个点的 Y 坐标

   int         x4,      // 找到弧形边界的第二个点的 X 坐标

   int         y4,      // 找到弧形边界的第二个点的 Y 坐标

   const uint  clr      // 颜色

   );

参数

x1

[in]  形成矩形的左上角的 X 坐标。

y1

[in]  形成矩形的左上角的 Y 坐标。

x2

[in]  形成矩形的右下角的 X 坐标。

y2

[in]  形成矩形的右下角的 Y 坐标。

x3

[in]  直线从矩形中心点开始绘制到第一个点的 X 坐标,以获得弧形边界。

y3

[in]  直线从矩形中心点开始绘制到第一个点的 Y 坐标,以获得弧形边界。

x4

[in]  直线从矩形中心点开始绘制到第二个点的 X 坐标,以获得弧形边界。

y4

[in]  直线从矩形中心点开始绘制到第二个点的 Y 坐标,以获得弧形边界。

clr

[in]  ARGB 格式的颜色模式。使用ColorToARGB() 函数,将颜色转换为ARGB格式。

在矩形上,绘制中心点在(x,y),半径为rx和ry的椭圆形弧线。使用通过fi3和fi4的夹角形成的射线从椭圆形中心横切弧形边界。

void  Arc(

   int         x,       // 椭圆形中心的 X 坐标

   int         y,       // 椭圆形中心的 Y 坐标

   int         rx,      // X 轴上的椭圆形半径

   int         ry,      // Y 轴上的椭圆形半径

   int         fi3,     // 从椭圆形中心发出的射线角,定义弧形的第一个边界

   int         fi4,     // 从椭圆形中心发出的射线角,定义弧形的第二个边界

   const uint  clr      // 颜色

   );

在矩形上,绘制中心点在(x,y),半径为rx和ry的椭圆形弧线,并返回弧形边界的坐标。使用通过fi3和fi4的夹角形成的射线从椭圆形中心横切弧形边界。

void  Arc(

   int         x,       // 椭圆形中心的 X 坐标

   int         y,       // 椭圆形中心的 Y 坐标

   int         rx,      // X 轴上的椭圆形半径

   int         ry,      // Y 轴上的椭圆形半径

   int         fi3,     // 从椭圆形中心发出的射线角,定义弧形的第一个边界

   int         fi4,     // 从椭圆形中心发出的射线角,定义弧形的第二个边界

   int&        x3,      // 第一个弧形边界的 X 坐标

   int&        y3,      // 第一个弧形边界的 Y 坐标

   int&        x4,      // 第二个弧形边界的 X 坐标

   int&        y4,      // 第二个弧形边界的 Y 坐标

   const uint  clr      // 颜色

   );

参数

x

[in]  椭圆形中心的 X 坐标。

y

[in]  椭圆形中心的 Y 坐标。

rx

[in]  像素表示的X 轴上的椭圆形半径。

ry

[in]  像素表示的X 轴上的椭圆形半径。

fi3

[in]  定义弧形第一个边界的弧度角。

fi4

[in]  定义弧形第二个边界的弧度角。

x3

[out] 获得第一个弧形边界 X 坐标的变量。

y3

[out] 获得第一个弧形边界 Y 坐标的变量。

x4

[out] 获得第二个弧形边界 X 坐标的变量。

y4

[out] 获得第二个弧形边界 Y 坐标的变量。

clr

[in]  ARGB 格式的颜色模式。使用ColorToARGB() 函数,将颜色转换为ARGB格式。

调用类函数的示例:

#include <Canvas\Canvas.mqh>

CCanvas canvas;

//+------------------------------------------------------------------+

//| 脚本程序起始函数                                    |

//+------------------------------------------------------------------+

void OnStart()

  {

   int      Width=600;

   int      Height=400;

//--- 创建 canvas

   if(!canvas.CreateBitmapLabel(0,0,"CirclesCanvas",30,30,Width,Height))

     {

      Print("Error creating canvas: ",GetLastError());

     }

//--- 清除 canvas

   canvas.Erase(clrWhite);

//--- 绘制矩形

   canvas.Rectangle(215-190,215-120,215+190,215+120,clrGray);

//--- 绘制第一个弧形

   canvas.Arc(215,215, 190,120,M_PI_4,2*M_PI-M_PI_4,ColorToARGB(clrRed));

   int x1,y1,x2,y2;

//--- 绘制第二个弧形

   canvas.Arc(215,215, 190,120,2*M_PI-M_PI_4,2*M_PI+M_PI_4,x1,y1,x2,y2,ColorToARGB(clrGreen));

//--- 打印弧形坐标

   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));

//--- 显示更新的canvas

   canvas.Update();

  }