文章: 研究CCanvas类如何绘制透明的图形对象

 

新文章 研究CCanvas类如何绘制透明的图形对象已发布:

你是不是想要更加好看的移动平均线?你想要在终端中绘制更加漂亮的而不是简单的实心矩形吗?终端中能够绘制出更有吸引力的图形。这可以通过CCanvas类来实现,该类用于创建自定义图形对象。用这个类你能够实现透明化,混合色以及通过重叠和混合颜色产生透明的效果。

在MetaTrader5中绘图很简单,你只需要知道一些细节就行。一个细节就是终端屏幕是如何设计的。跟准确的说,我们对图形在屏幕上的输出方式 感兴趣。例如,图表能够在前景或是背景上显示。在屏幕上输出的颜色取决于显示的图表。某些图表对象可能在重叠或者交叉区域产生颜色变化。

在用CCanvas类直接绘图前,让我们分析下和颜色而处理相关的定义。例如,让我们搞清楚Alpha通道的意义。

在我看来,实现透明化是最重要的技术,能够让图像看起来生动。例如,通过使用平滑的色彩过渡和阴影,透明化能够用于让图像看起来更加吸引人。暗影增加了图形对象的维度,并在视觉上柔化物体边缘。


5. 透明效果

现在我们可以着手实现透明效果了。

让我们绘制一些填充矩形(脚本 "xor.mq5")。为了揭示色彩处理方法的不同,在图表的顶层创建三个互不重叠的水平画布。

第一个用COLOR_FORMAT_XRGB_NOALPHA处理,第二个用COLOR_FORMAT_ARGB_RAW ,第三个用COLOR_FORMAT_ARGB_NORMALIZE。然后我们逐渐将透明从255(不透明)改到0(完全透明)。调用脚本 "Illusion.mq5"。

这个短片显示脚本 "Illusion.mq5" 如何运作:


图. 11. 脚本illusion.mq5的运作方式

作者:Karputov Vladimir