为指标线添加音量效果 - 页 4 1234567891011 新评论 Anatoli Kazharski 2015.01.08 10:23 #31 barabashkakvn: 这些点是在没有抗锯齿的情况下绘制的。我特别选择了PixelSetAA 的方法--用抗锯齿画点。试着用PixelSetAA 画一条线。PolylineAA 方法使用LineAA 方法。LineAA 方法使用PixelSetAA 方法。通过绘制一个单点,你不会看到抗锯齿的效果。 Vladimir Karputov 2015.01.08 10:38 #32 tol64: 试着用PixelSetAA 画一条线。不,没有影响。没有平滑的近点。尖角就像砖头。 附加的文件: CanvasPolylineShadow1_2PixelSetAA.mq5 2 kb Anatoli Kazharski 2015.01.08 10:41 #33 barabashkakvn:不,没有影响。没有平滑的近点。尖角就像砖头。 我对以前的帖子进行了补充。注意上述方法是如何实现的,如果需要平滑,就使用这些方法。 Vladimir Karputov 2015.01.08 11:01 #34 tol64: 我对之前的信息进行了补充。注意上述方法是如何实现的,如果你需要平滑,就使用它们。 我暂时不碰带平滑的画线方法--PolylineAA。我想了解帮助中所说的关于PixelSetAA 的内容。PixelSetAA-使用抗锯齿算法绘制一个点。由于这个方法是用抗锯齿来画一个点,如果我连续画几个点,应该会得到这样的图像。但我没有得到顺利的分数。 Anatoli Kazharski 2015.01.08 11:36 #35 barabashkakvn: 我暂时不碰带平滑的画线方法--PolylineAA。我想了解帮助中关于PixelSetAA 的内容。PixelSetAA-使用抗锯齿算法绘制一个点。由于这个方法是用抗锯齿来画一个点,如果我连续画几个点,应该会得到这样的图像。但我没有得到顺利的分数。这就是为什么我建议你比较有抗锯齿和无抗锯齿的方法的代码。该代码是开放性的,可供研究。要了解它,你需要彻底研究这些方法中使用的算法。你甚至可以就这个主题写一篇文章。我自己也很高兴能读到它。) Andrey Khatimlianskii 2015.01.08 12:53 #36 点不能被磨平,在某种意义上它是一个'基本粒子' ) Vladimir Karputov 2015.01.08 13:12 #37 komposter: 一个点不能被磨平,在某种意义上它是一个 "基本粒子" ) 那么问题来了:有两种方法(PixelSet 和PixelSetAA)。我对PixelSetAA 非常感兴趣--也许我不了解点平滑的工作原理? Andrey Khatimlianskii 2015.01.08 13:59 #38 barabashkakvn: 所以这就是问题所在:有两种方法(PixelSet 和PixelSetAA)。对PixelSetAA 非常感兴趣--也许我不了解点平滑的工作原理?如果所有其他方法都失败了,请阅读帮助;)PixelSet简单地设置点的颜色。 Vladimir Karputov 2015.01.08 14:15 #39 我们读了帮助。因此,问题是,"PixelSetAA 甚至应该使用抗锯齿来绘制一个点吗?"。我想听听大家的意见。 Vladimir Karputov 2015.01.08 14:39 #40 barabashkakvn: 我们读了帮助。因此,问题是,"PixelSetAA 甚至应该使用抗锯齿来绘制一个点吗?"。我想听听大家的意见。答案是:PixelSetAA 方法甚至应该 使用抗锯齿绘制一个单点,而且它确实 使用抗锯齿绘制了 这个单点。为了做到这一点,我不得不研究CCanvas的代码。//+------------------------------------------------------------------+ //| Draw pixel with antialiasing | //+------------------------------------------------------------------+ void CCanvas::PixelSetAA(const double x,const double y,const uint clr) { static double rr[4]; static int xx[4]; static int yy[4]; //--- preliminary calculations int ix=(int)MathRound(x); int iy=(int)MathRound(y); double rrr=0; double k; double dx=x-ix; double dy=y-iy; uchar a,r,g,b; uint c; //--- no need for anti-aliasing if(dx==0.0 && dy==0.0) { PixelSet(ix,iy,clr); return; } //--- prepare array of pixels xx[0]=xx[2]=ix; yy[0]=yy[1]=iy; if(dx<0.0) xx[1]=xx[3]=ix-1; if(dx==0.0) xx[1]=xx[3]=ix; if(dx>0.0) xx[1]=xx[3]=ix+1; if(dy<0.0) yy[2]=yy[2]=iy-1; if(dy==0.0) yy[2]=yy[2]=iy; if(dy>0.0) yy[2]=yy[2]=iy+1; //--- calculate radii and sum of their squares for(int i=0;i<4;i++) { dx=xx[i]-x; dy=yy[i]-y; rr[i]=1/(dx*dx+dy*dy); rrr+=rr[i]; } //--- draw pixels for(int i=0;i<4;i++) { k=rr[i]/rrr; c=PixelGet(xx[i],yy[i]); a=(uchar)(k*GETRGBA(clr)+(1-k)*GETRGBA(c)); r=(uchar)(k*GETRGBR(clr)+(1-k)*GETRGBR(c)); g=(uchar)(k*GETRGBG(clr)+(1-k)*GETRGBG(c)); b=(uchar)(k*GETRGBB(clr)+(1-k)*GETRGBB(c)); PixelSet(xx[i],yy[i],ARGB(a,r,g,b)); } }类,并意识到只有当你传递一个双数类型的数字作为坐标时才会出现平滑,而不是一个四舍五入的值,而是有一个 "尾巴"。像200.4;125.6;200.7。这是用PixelSetAA 方法用点画出的抛物线,它确实开始被画得很平滑了。 附加的文件: CanvasPolylineShadow1_1.mq5 4 kb 1234567891011 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这些点是在没有抗锯齿的情况下绘制的。我特别选择了PixelSetAA 的方法--用抗锯齿画点。
试着用PixelSetAA 画一条线。
PolylineAA 方法使用LineAA 方法。LineAA 方法使用PixelSetAA 方法。通过绘制一个单点,你不会看到抗锯齿的效果。
试着用PixelSetAA 画一条线。
不,没有影响。没有平滑的近点。尖角就像砖头。
不,没有影响。没有平滑的近点。尖角就像砖头。
我对之前的信息进行了补充。注意上述方法是如何实现的,如果你需要平滑,就使用它们。
由于这个方法是用抗锯齿来画一个点,如果我连续画几个点,应该会得到这样的图像。
但我没有得到顺利的分数。
我暂时不碰带平滑的画线方法--PolylineAA。我想了解帮助中关于PixelSetAA 的内容。
由于这个方法是用抗锯齿来画一个点,如果我连续画几个点,应该会得到这样的图像。
但我没有得到顺利的分数。
这就是为什么我建议你比较有抗锯齿和无抗锯齿的方法的代码。该代码是开放性的,可供研究。
要了解它,你需要彻底研究这些方法中使用的算法。
你甚至可以就这个主题写一篇文章。我自己也很高兴能读到它。)
一个点不能被磨平,在某种意义上它是一个 "基本粒子" )
所以这就是问题所在:有两种方法(PixelSet 和PixelSetAA)。对PixelSetAA 非常感兴趣--也许我不了解点平滑的工作原理?
如果所有其他方法都失败了,请阅读帮助;)
PixelSet简单地设置点的颜色。
我们读了帮助。因此,问题是,"PixelSetAA 甚至应该使用抗锯齿来绘制一个点吗?"。我想听听大家的意见。
答案是:PixelSetAA 方法甚至应该 使用抗锯齿绘制一个单点,而且它确实 使用抗锯齿绘制了 这个单点。为了做到这一点,我不得不研究CCanvas的代码。
类,并意识到只有当你传递一个双数类型的数字作为坐标时才会出现平滑,而不是一个四舍五入的值,而是有一个 "尾巴"。像200.4;125.6;200.7。
这是用PixelSetAA 方法用点画出的抛物线,它确实开始被画得很平滑了。