MetaTrader 5的图形:画布 - 在缓冲区内通过对象捕捉绘制

 

新的 ResourceCreate 函数 已出现在build 619 用于飞速创建动态图形资源。

通过该函数,现在您可以在32位色彩创建任何复杂的图像(包括阿尔法通道)并将它们附于图表对象。

开发者如何从中获利:

  • 程序可以迅速创建漂亮的界面,无需执行太多文件

  • 额外的资源文件(不只是BMP和WAV)可以使用# Resource "file name" 指令直接添加到EX 5 文件,在运行时读取,修改和应用于对象

    在最近的版本中将会提供ResourceLoad() 函数。它将允许读取一段时间前附加到EX5文件的资源

  • 使用阿尔法通道在图表管理透明度上应用任何分析结构成为可能

    例如,我们可以绘制半透明云,通过管理色彩和饱和度预测可能的市场方向

  • 在图表上绘制任何内容

不久我们将添加CCanvas 类到标准程序库。该类允许通过绘制输出到绑定对象的缓冲区图像来轻松地操纵它们。

这是一个简单的脚本,显示这个类的操作(附加文件):

#include "Canvas.mqh"
//+------------------------------------------------------------------+
//| 脚本程序起始函数                                                   |
//+------------------------------------------------------------------+
void OnStart()
  {
   CCanvas can;
//---
   can.Create("MySpace",0,0,512,512,COLOR_FORMAT_ARGB_RAW);
   MathSrand(0);
//---
   for(int i=0;i<10000;i++)
     {
      can.FillRect(MathRand()&255,MathRand()&255,256+(MathRand()&255),256+(MathRand()&255),XRGB(MathRand(),MathRand(),MathRand()));
      can.Circle(MathRand()&511,MathRand()&511,MathRand()&127,XRGB(MathRand(),MathRand(),MathRand()));
      can.Triangle(MathRand()&511,MathRand()&511,MathRand()&511,MathRand()&511,MathRand()&511,MathRand()&511,XRGB(MathRand(),MathRand(),MathRand()));
      //---
      can.Update();
     }
//---
  }




原因: