帆布很酷! - 页 2

 
fxsaber:

CCanvas是ResourceCreate的一个包装器。因此,举例来说,你有20个现成的数组形式的图像。如果你想通过canvas来改变它们,你将需要做昂贵的ArrayCopy+Update。

而如果你不使用CCanvas,你将只需要ResourceCreate+ChartRerdraw。我在kodobase中发布了几个动态绘图工作。在那里,很明显CCanvas不是什么好东西。

我同意它是一个资源包装物。我们需要确定定义。按照我的理解,Canvas不是CCanvas类,而是一个矩形的图形资源,即一个点的阵列。我需要从CCanvas类中获得一些创建、更新和删除的函数。它的实现相当智能,我认为其他的功能由于像素(未平滑)的实现而没有用。另外,我对作为矢量图形的kanvas感兴趣,而不是作为位图,换句话说,当我自己形成图像时,而不是下载图片。因此,我看不出20张现成的图片有什么实际用途,我也不能把它作为MT5的视频播放器使用。矢量图形的目的是在少于30(或更好的是少于10)毫秒的时间内渲染一幅图像。因为人眼无论如何也不会看到每秒超过30次的图像变化。基本上MT5中的kanvas可以很好地应对这一任务。诚然,那些颜色漩涡已经到了极限(即在我的普通笔记本电脑上,一帧形成约30毫秒),但在MT4上,它已经在减速了。

在时间允许的情况下,我现在正在制作一个CCanvasPro类,我想在其中把事情做得更好一些。
这是我目前得到的圆圈的情况(用阴影平滑)。对不起,我还没有打开这个代码。由于自由空间的数量不足。

这也是一个脚本。

附加的文件:
 
Evgeniy Zhdan:
很酷的彩虹图!我还想让蜡烛随着音乐跳舞,并在它们之间扭动!

会不会增加利润?)每支舞都有奖金,那我就加入了))))。

 
Nikolai Semko:

当然会有帮助,但会有糟糕的制动。

会有轻微的减速,但没有可怕的刹车。至少在视觉上,没有任何变化。


 
Rashid Umarov:

会有轻微的减速,但没有可怕的刹车。至少在视觉上,没有任何变化。


当然,我是有点苛刻的。但是,仍然会比整体性能慢10%左右。

 
Rashid Umarov:

会有轻微的减速,但没有可怕的刹车。至少在视觉上,没有任何变化。


不是在分析时检查,而是用GetMicrosecondCount 检查

结果是在1000帧时,速度降低了3-4%。原则上,是的,不是很关键。

while(!IsStopped())
     {
      static ulong t0=GetMicrosecondCount();
      int pos=int(i%size);
      if(pos==0)
        {
         C.Update();
         //Sleep(30);
         X1= Width-(sin((double)j/100)*(double)Width);
         Y1= Height-(cos((double)j/140)*(double)Height);
         X2= Width+(cos((double)j/80)*(double)Width);
         Y2= Height+(sin((double)j/20)*(double)Height);
         if (j==101000) Print(GetMicrosecondCount()-t0);
         j++;
        }
      int X=pos%Width;
      int Y=int(pos/Width);
      double d= ((X1-X)*(X1-X)+(Y1-Y)*(Y1-Y))/(((X1-X)*(X1-X)+(Y1-Y)*(Y1-Y))+((X2-X)*(X2-X)+(Y2-Y)*(Y2-Y)));
      //C.m_pixels[pos]=XRGB(h[int(d*11520)],h[int(d*17920)],h[int(d*6400)]);
      C.PixelSet(X,Y,XRGB(h[int(d*11520)],h[int(d*17920)],h[int(d*6400)]));
      i++;
     }


 
Nikolai Semko:

我给自己定了一个任务:通过CCanvas类在简短的代码中展示自定义图形的能力。

下面是它的结果。

这个脚本在MQL5和MQL4中都适用。但在MT5上则快得多。

每一帧都是唯一的,不会重复,也就是说,脚本不是循环的。


你应该在编译前将 Canvas.mqh 中的数组 m_pixels[] 从 protected: 移到 public。

看了半个小时,等着这东西起飞))。

 
Alexey Volchanskiy:

看了半个小时,等着这东西起飞))。

:))
 

坦率地说,我不明白这有什么意义。

嗯,是的,美丽的,多彩的,彩虹色的......但是它将如何影响专家的工作?

我会理解的,如果我们在这里写游戏--那就是这样的机会哦,多么需要的是......。但在这里...

在我看来,有必要恰恰相反--摆脱任何不必要的行动,这样产生的代码将尽可能少地加载系统(将需要在云中的资金)。而且,它还必须更容易维护。

除非--对客户的 "惊叹效应"...我想这是真的,一个设计良好的输出可以让你在自由职业中赚更多的钱。

 
非常酷,谢谢你,现在的交易将变得更加光明,从字面上看。
 
George Merts:

坦率地说,我不明白这有什么意义。

嗯,是的,美丽的,多彩的,彩虹色的......但是它将如何影响专家的工作?

我会理解的,如果我们在这里写游戏--这就是这样的机会哦,多么需要的地方......但在这里...

在我看来,有必要恰恰相反--摆脱任何不必要的行动,这样产生的代码将尽可能少地加载系统(将需要在云中的资金)。而且,它还必须更容易维护。

除非--对客户的 "惊叹效应"...我认为,这是真的,一个设计良好的输出可以让你在自由职业中赚更多的钱。

它可能会在指标方面派上用场。帆布上有不同的箭头指标 画在这里,甚至还有一篇文章。