Nikolai Semko:
它很酷,但完全没有抗锯齿功能。用像素方块绘图已经落后于时代了。
下面这个例子可以证明自然界中存在抗锯齿:
代码呢?
Rashid Umarov:
代码呢?
不客气:
#property copyright "2009-2017, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property description "Demonstrating Canvas features" #property script_show_inputs //--- #include <Canvas\CanvasPro.mqh> //+------------------------------------------------------------------+ //| 输入| //+------------------------------------------------------------------+ input int pause = 20; // 以毫秒为单位向屏幕输出的延迟时间 input bool top = false; // 在图形下画图? input ENUM_COLOR_FORMAT format=COLOR_FORMAT_ARGB_NORMALIZE; //颜色处理方法 input int Ncirl =30; // 圈数 input int MaxSizeCircle = 200; // 圆的最大尺寸 //+------------------------------------------------------------------+ //| 脚本程序启动功能| //+------------------------------------------------------------------+ int OnStart(void) { double r1[],r2[],k1[],k2[]; int x[],y[]; uint col[]; int j=0; ArrayResize(r1,Ncirl); ArrayResize(r2,Ncirl); ArrayResize(k1,Ncirl); ArrayResize(k2,Ncirl); ArrayResize(x,Ncirl); ArrayResize(y,Ncirl); ArrayResize(col,Ncirl); ChartSetInteger(0,CHART_FOREGROUND,top); int Width =(ushort)ChartGetInteger(0,CHART_WIDTH_IN_PIXELS); // 获取窗口宽度 int Height=(ushort)ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS); // 获取窗口高度 uint ColorScreen=(color)ChartGetInteger(0,CHART_COLOR_BACKGROUND,0);// 获取窗口背景颜色 CCanvasPro canvas; if(!canvas.CreateBitmapLabel("SampleCanvas",0,0,Width,Height,format)) { Print("Error creating canvas: ",GetLastError()); return(-1); } canvas.SetBack(false); canvas.Erase(ColorScreen); canvas.Update(); srand(GetTickCount()); for(int i=0;i<Ncirl;i++) { x[i]=rand()%Width; y[i]=rand()%Height; r1[i]=rand()%MaxSizeCircle; r2[i]=rand()%MaxSizeCircle; k1[i]=(double)(rand()%10)/1000; k2[i]=(double)(rand()%10)/1000; col[i]=XRGB(rand()%255,rand()%255,rand()%255); } while(!IsStopped()) { canvas.Erase(ColorScreen); for(int i=0;i<Ncirl;i++) canvas.CircleSS(x[i],y[i],r1[i]*fabs(sin(j*k1[i])),r2[i]*fabs(sin(j*k2[i])),col[i]); Sleep(pause); canvas.Update(); j++; } ObjectDelete(0,"SampleCanvas"); canvas.Destroy(); return(0); }
附加的文件:
CanvasSampleMy.ex5
37 kb
CanvasSampleMy.mq5
6 kb
Nikolai Semko:
唉。即使是基于吴氏方法的最后一个圆函数也存在错误,而且由于这种方法的原始性,在圆的对角线位置进行平滑处理时会产生明显的误差,在速度上也非常不理想。尤其是平滑填充形状根本不存在。
好吧,那我只能提出这个问题了。唉。即使是基于吴氏方法的最后一个圆函数也存在错误,而且由于这种方法的原始性,在圆的对角线位置进行平滑处理时会产生明显的误差,在速度上也非常不理想。尤其是平滑填充形状根本不存在。
代码呢?
Rashid Umarov:
代码呢?
Andrey Barinov:
好吧,那我只能加入提问。
好吧,那我只能加入提问。
代码呢?
很奇怪您为什么会问我这个问题。我不在 Metaquotes 工作,虽然我梦想在那里工作。如果我在这家公司工作,那么我就能很好地解决这个问题,而且不仅能解决 CCanvas 库中的平滑问题,还能解决例如画布中的完整 3D 功能问题。
但现在我只有跪在地上做的实验,我不敢发表这些实验,因为我知道我可以做得更好,但这需要时间。
附加的文件:
CanvasSampleMy.ex5
37 kb
Nikolai Semko:
做工作,写文章。你会得到报酬,而且会很有用。
很奇怪你为什么会问我这个问题。我不在 Metaquotes 工作,虽然我梦想在那里工作。如果我在这家公司工作,那么我就能很好地解决这个问题,不仅能解决 CCanvas 库中的抗锯齿问题,还能解决例如画布中的全 3D 功能问题。
但现在我只能做一些实验,这些实验是我跪着组装的,我不敢发表,因为我知道我可以做得更好,但这需要时间。
这已经是第 10 次了,虽然没有帖子编辑或新帖,但该主题被标记为未读。
是有人在捣乱,还是论坛出了问题?
Andrey Khatimlianskii:
这已经是第 10 次了,虽然没有帖子编辑或新帖,但该主题被标记为未读。
是有人在捣乱,还是论坛出了问题?
我怀疑作者正在编辑他的帖子。
另一种可能是:有人开始写帖子后退出了,现在这个帖子挂在编辑模式下,论坛每隔一分钟(5 分钟、10 分钟?

新文章 利用 CCanvas 的自定义指标和信息图已发布:
本文研究结构更加复杂实现的新型指标。它还描述了如何开发伪 3D 指标类型和动态信息图。
我们已研究了使用基元构造复杂形状的类和原理。在描述构造直方图类型指标的类时, 我曾提到通过颜色选择绘制伪 3D 对象 (图例. 13)。然而, 金字塔不是一个平直的数字。因此, 我们必须在给定的二维坐标系中使用其等轴投影。基本结构不包含太多元素 (图例. 14), 但是金字塔投影方法和可视化是这个类需要实现的主要部分。
图例. 14. CPyramid 类的基本结构
作者:Alexander Fedosov