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