Pie
Pie
在(x1,y1)和(x2,y2)位置的矩形上绘制椭圆形的填充扇形。直线从椭圆形中心横切扇形边界,延伸至(x3,y3)和(x4,y4)两个坐标点。
void Pie(
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, // 直线颜色
const uint fill_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格式的扇形边界颜色。
- fill_clr
[in] ARGB格式的扇形填充颜色。使用ColorToARGB() 函数,将颜色转换为ARGB格式。
在矩形上,绘制中心点在(x,y),半径为rx和ry的椭圆形的填充扇形。使用通过fi3和fi4的夹角形成的射线从椭圆形中心横切扇形边界。
void Pie(
int x, // 椭圆形中心的 X 坐标
int y, // 椭圆形中心的 Y 坐标
int rx, // X 轴上的椭圆形半径
int ry, // Y 轴上的椭圆形半径
int fi3, // 从椭圆形中心发出的射线角,定义弧形的第一个边界
int fi4, // 从椭圆形中心发出的射线角,定义弧形的第二个边界
const uint clr, // 直线颜色
const uint fill_clr // 填充颜色
);在矩形上,绘制中心点在(x,y),半径为rx和ry的椭圆形的填充扇形,并返回弧形边界的坐标。使用通过fi3和fi4的夹角形成的射线从椭圆形中心横切扇形边界。
void Pie(
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, // 直线颜色
const uint fill_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格式的扇形边界颜色。
- fill_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.Pie(215,215, 190,120,M_PI_4,2*M_PI-M_PI_4,ColorToARGB(clrBlue),ColorToARGB(clrRed));
//--- 绘制第二个饼图
canvas.Pie(215,215, 190,120,2*M_PI-M_PI_4,2*M_PI+M_PI_4,ColorToARGB(clrGreen),ColorToARGB(clrGreen));
//--- 显示更新的canvas
canvas.Update();
DebugBreak();
}