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