帆布很酷! - 页 24 1...171819202122232425262728293031...93 新评论 Nikolai Semko 2019.08.13 18:48 #231 Rafil Nurmukhametov: 你好@Nikolai Semko, 你能不能告诉我,是否可以在一层画布上将透明物体叠加在文字上,见图。 第二个透明圆圈是第二层,这个物体对我来说是没有问题的。 还有一个问题,如何在画布层中插入图像,或者我应该把它作为一个额外的图层?我知道这是一个资源,但我不能让它工作,你能给我看一个代码样本吗? 如果使用透明度(COLOR_FORMAT_ARGB_NORMALIZE),两个图层tr1和tr2的透明度应按公式混合。 double tr=tr1+tr2-tr1*tr2; // где tr, tr1, tr1 меняются от нуля (абсолютная прозрачность) до 1(абсолютная непрозрачность) 一个具有随机颜色和随机透明度的随机圆圈的脚本实例。 #include <Canvas\iCanvas.mqh> //https://www.mql5.com/ru/code/22164 #define Num 100 //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { // инициализация случайных окружностей uint X[Num],Y[Num],sr[Num],clr[Num],Rmin[Num],Rmax[Num]; double sx[Num],sy[Num]; for(int i=0; i<Num; i++) { X[i]=rand()%3141; Y[i]=rand()%3141; sr[i]=rand()%3141; sx[i]=0.3+0.7*(double)rand()/32767.0; sy[i]=0.3+0.7*(double)rand()/32767.0; clr[i]=ARGB(rand()%256,rand()%256,rand()%256,rand()%256); int r2=5+rand()%100; int r1=5+rand()%100; Rmin[i]=(int)fmin(r1,r2); Rmax[i]=(int)fmax(r1,r2); } // формирование изображения из Num (= 100) полупрозрачных кругов double j=0; while(!IsStopped()) { Canvas.Erase(); Canvas.CurentFont("Arial",30); Canvas.TextPosY=100; Canvas.Comm("Hello World!"); for(int i=0; i<Num; i++) { Circle(W.Width/2*(1+sin((X[i]+sx[i]*j)*M_PI/1000)), W.Height/2*(1+sin((Y[i]+sy[i]*j)*M_PI/1000)), Rmin[i]+double(Rmax[i]-Rmin[i])/2*(1.0+cos((j+sr[i])*M_PI/1000)),clr[i]); } Canvas.Update(); j+=0.3; Sleep(30); } } //+------------------------------------------------------------------+ void Circle(double x,double y,double r,uint clr) { double R2=r*r; for(int X=Round(x-r); X <=Round(x+r);X++) for(int Y=Round(y-r); Y<=Round(y+r);Y++) if(((x-X)*(x-X)+(y-Y)*(y-Y))<=R2) Canvas.PixelSet(X,Y,MixColor(clr,Canvas.PixelGet(X,Y))); } //+------------------------------------------------------------------+ uint MixColor(uint clr,uint clrback)// смешиваем цвет и прозрачность clr c цветом и прозрачностью фона clrback { argb C,Bg; if(clrback==0) return clr; C.clr=clr; if(C.c[3]==255) return clr; Bg.clr=clrback; double tr=C.c[3]/255.0; double trb=Bg.c[3]/255.0; C.c[2]=uchar(Bg.c[2]+tr*(C.c[2]-Bg.c[2])); C.c[1]=uchar(Bg.c[1]+tr*(C.c[1]-Bg.c[1])); C.c[0]=uchar(Bg.c[0]+tr*(C.c[0]-Bg.c[0])); C.c[3]=uchar((trb+tr-trb*tr)*255.0+0.49999); return C.clr; } //+------------------------------------------------------------------+ 附加的文件: TestLayerTransparency.mq5 6 kb Nikolai Semko 2019.08.13 18:59 #232 Rafil Nurmukhametov: @Nikolai Semko 我还有一个问题:如何将图像插入画布层,还是应该将其作为一个附加层?我明白,通过某种资源,但我什么也得不到,你能给我看一个代码例子吗? 你可以在这里 看到如何利用图片工作。 毕竟,一个图像与一个点的阵列是一样的。 这个例子展示了如何将两个bmp文件的资源转换成uint数组BMP1[]、BMP2[],并在一个画布中进一步处理这些数组。 Rafil Nurmukhametov 2019.08.14 03:15 #233 非常感谢你,尼古拉,终于解决了这个问题。 Nikolai Semko 2019.08.14 11:31 #234 Rafil Nurmukhametov: 非常感谢你,尼古拉,终于解决了这个问题。 不客气。 Nikolai Semko 2019.08.22 21:19 #235 首次实验的动态时间框架。 欧元兑美元 在动态中的所有历史。 . 分裂性是明显的。 Sergey Golubev 2019.08.22 22:28 #236 Nikolai Semko: 首次进行动态时间框架的实验。 欧元兑美元 在动态中的所有历史。 . 分裂性是明显的。 看到你的英文帖子。 请多发英文帖子,包括CodaBase(你的东西在那里很受欢迎)。 供参考。 Nikolai Semko 2019.08.22 22:42 #237 Sergey Golubev: 看到你的英文帖子。 我想请你在英语部分多发一些,包括CodaBase(你的东西在那里很受欢迎)。 仅供参考。 谢谢你。我将尽我所能。然而,在我看来,在论坛的英语部分,对我的帖子的反应几乎为零。一直以来的感觉是,"默默地对自己说......"。 Maxim Romanov 2019.08.23 05:34 #238 Nikolai Semko:首次实验的动态时间框架。 欧元兑美元 在动态中的所有历史。 . 分裂性是很明显的。 干得好! Реter Konow 2019.08.23 08:01 #239 很好! Aleksey Vyazmikin 2019.08.23 08:19 #240 Nikolai Semko: 首次进行动态时间框架的实验。 欧元兑美元 在动态中的所有历史。 . 分裂性是明显的。 相当直观,有趣。 我们是否也可以用这种方式将蜱虫可视化? 1...171819202122232425262728293031...93 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你好@Nikolai Semko, 你能不能告诉我,是否可以在一层画布上将透明物体叠加在文字上,见图。 第二个透明圆圈是第二层,这个物体对我来说是没有问题的。
还有一个问题,如何在画布层中插入图像,或者我应该把它作为一个额外的图层?我知道这是一个资源,但我不能让它工作,你能给我看一个代码样本吗?
如果使用透明度(COLOR_FORMAT_ARGB_NORMALIZE),两个图层tr1和tr2的透明度应按公式混合。
一个具有随机颜色和随机透明度的随机圆圈的脚本实例。
@Nikolai Semko
我还有一个问题:如何将图像插入画布层,还是应该将其作为一个附加层?我明白,通过某种资源,但我什么也得不到,你能给我看一个代码例子吗?
你可以在这里 看到如何利用图片工作。
毕竟,一个图像与一个点的阵列是一样的。
这个例子展示了如何将两个bmp文件的资源转换成uint数组BMP1[]、BMP2[],并在一个画布中进一步处理这些数组。
非常感谢你,尼古拉,终于解决了这个问题。
不客气。
首次实验的动态时间框架。
欧元兑美元 在动态中的所有历史。
.![](https://c.mql5.com/3/288/EURUSD.gif)
分裂性是明显的。首次进行动态时间框架的实验。
欧元兑美元 在动态中的所有历史。
.
分裂性是明显的。请多发英文帖子,包括CodaBase(你的东西在那里很受欢迎)。
供参考。
看到你的英文帖子。
我想请你在英语部分多发一些,包括CodaBase(你的东西在那里很受欢迎)。
仅供参考。
首次实验的动态时间框架。
欧元兑美元 在动态中的所有历史。
.
分裂性是很明显的。首次进行动态时间框架的实验。
欧元兑美元 在动态中的所有历史。
.
分裂性是明显的。相当直观,有趣。
我们是否也可以用这种方式将蜱虫可视化?