帆布很酷! - 页 47 1...404142434445464748495051525354...93 新评论 Nikolai Semko 2020.01.17 11:59 #461 Maxim Kuznetsov: 不是平面上的圆,而是3D的圆柱体 :-)该课程将以螺旋形式出现。如果你成功地标出了圆柱坐标,这是一个相当合理的事情 有可能。 Nikolai Semko 2020.01.17 15:47 #462 Maxim Kuznetsov: 那么就不是平面上的圆,而是三维的圆柱体 :-)该课程将以螺旋形式出现。如果你成功地标出了圆柱坐标,这是一个相当合理的事情 实际上,这并不难实现。另外还有2-5行的代码。如果没有人在我之前做,当我有空闲的时候,我就会去做。 但最好能有一个4K屏幕 Nikolai Semko 2020.01.18 03:34 #463 Maxim Kuznetsov: 那么就不是平面上的圆,而是三维的圆柱体 :-)该课程将以螺旋形式出现。如果你成功地标出了圆柱坐标,这是一个相当合理的事情 https://www.mql5.com/en/code/27662 注意代码的速度和大小。 而这一切都离不开Direct X Aleksey Vyazmikin 2020.01.18 05:33 #464 Nikolai Semko: https://www.mql5.com/en/code/27662 注意代码的速度和大小。 而这一切都离不开Direct X 神奇的! 半径取决于什么? 把戒指做成多色的有难度吗? 也许这种可视化对评估优化中的最佳50个通道或压实中的整个优化很有用。 Aleksey Panfilov 2020.01.18 06:29 #465 Nikolai Semko: https://www.mql5.com/en/code/27662 注意速度和代码的大小。 而这一切都离不开Direct X 简单地说,就是魔法。!!! 而如果你在轴上加上一个极地网格,以及改变比例的能力,直到几乎直的 "平行线" (和平行的 "经线"), 你就会得到一个向传统图形的平稳过渡。 Реter Konow 2020.01.18 06:41 #466 Nikolai Semko: https://www.mql5.com/en/code/27662 注意代码的速度和大小。 而这一切都离不开Direct X+++ Nikolai Semko 2020.01.18 15:13 #467 谢谢大家! Aleksey Vyazmikin: 它是神奇的! 半径取决于什么? 把戒指做成多色的有难度吗? 也许这种可视化对于评估优化过程中的50个最佳通道,或者压实过程中的整个优化过程都很有用。 这个3D图形和旋转控制的代码都适合在这个函数中。 void Draw(double &c[]) { double _r=_Height/2-7; int Per=int(2*M_PI*_r); int X=_Width/2; int Y=_Height/2-5; double K=10*_Height; Canvas.Erase(0xFF000000); int Size =ArraySize(c); double max = c[ArrayMaximum(c,0)]; double min = c[ArrayMinimum(c,0)]; if (max-min<=0) return; double _a=2*M_PI/per*(_Width/2 - _MouseX + 5*per); // угол камеры по горизонтали (_MouseX - текущая координата X указателя мышки) double _b=2*M_PI/per*(_Height/2 - _MouseY + 5*per); // угол камеры по вертикали (_MouseY - текущая координата Y указателя мышки) for (int i=0; i<Size; i++) { double r = _r*(0.3+0.7*(c[i]-min)/(max-min)); double a = 2*M_PI/per*i; double z =r -r*2*double(i)/Size; double x = cos(a)*r; double y = sin(a)*r; double R=sqrt(x*x+y*y+z*z); double x1=x*cos(_a)+z*sin(_a); double z1=-x*sin(_a)+z*cos(_a); double y1=y*cos(_b)+z1*sin(_b); double z2=-y*sin(_b)+z1*cos(_b); z2=z2+_r; x=X+K*x1/(z2+K); y=Y+K*y1/(z2+K); _PixelSet((int)x,(int)y,Grad(double(i)/Size)); } Canvas.Update(); } 这个函数的输入只是一个价格数组。即使是一个小学生也能理解这些代码。一个一维的价格数组被转换为一个3维的点数组。在XY平面内,价格用极坐标系统表示,其中到中心(0,0)的距离r=sqrt(x2+y2)就是价格值。 颜色选择是这个功能的责任。 uint Grad(double p) { static uint Col[6]= {0xFF0000FF,0xFFFF00FF,0xFFFF0000,0xFFFFFF00,0xFF00FF00,0xFF00FFFF}; if(p>0.9999) return Col[5]; if(p<0.0001) return Col[0]; p=p*5; int n=(int)p; double k=p-n; argb c1,c2; c1.clr=Col[n]; c2.clr=Col[n+1]; return ARGB(255,c1.c[2]+uchar(k*(c2.c[2]-c1.c[2])+0.5), c1.c[1]+uchar(k*(c2.c[1]-c1.c[1])+0.5), c1.c[0]+uchar(k*(c2.c[0]-c1.c[0])+0.5)); } 其输入p是一个从0到1的数字,其输出是选定的梯度颜色。在这种情况下,颜色图案本身的骨架由6种颜色组成(阵列Col)。 你可以自由地以任何方式、任何方式进行着色 Nikolai Semko 2020.01.18 15:18 #468 Aleksey Panfilov: 简单地说,就是魔法。!!! 而如果我们在轴上添加一个极地网格,并能够改变比例,直到几乎是直线的 "平行线" (和平行的 "经线"), 我们就可以顺利过渡到传统图形。 当然可以,但我不想用不同的尺度把代码弄得很乱。在这种情况下,对我来说,展示不包含任何多余内容的代码很重要。这样就会更容易理解它。 Martingeil 2020.01.18 15:24 #469 Nikolai Semko: 当然可以,但我不想用不同的尺度把代码弄得很乱。在这种情况下,对我来说,重要的是展示代码,没有任何多余的东西。这将更容易理解它。 尼古拉,关于你的库的一个问题,如何将数据带入专家顾问? Nikolai Semko 2020.01.18 15:52 #470 Martingeil: 尼古拉,关于你的库的一个问题,如何将数据带入专家顾问? 我不明白这个问题,iCanvas是一个图形库。 你可能在问,如果你通过iCanvas创建了一个具有线条可视化的指标,并让它没有缓冲,那么如何将数据读入EA?那么请你更清楚地表达自己。 首先,没有人禁止你创建缓冲指标数组,就像在标准指标中一样,只需将其做成INDICATOR_CALCULATIONS,然后通过iCustom以常规方式访问数据。 第二,有这样一个强大的工具,作为资源。指示器缓冲区 本质上是相同的资源。无论如何,它们使用相同的机制来存储和访问数据。 处理资源问题。这不是很直接,但它是传输数据的一个重要工具。你可以创建你自己的库,这比经典的缓冲区阵列更有效率。 就个人而言,我使用我自己的设计,我不发表这些设计。它们比iCustom访问更方便、更有效。一切都完全通过资源来实现。 1...404142434445464748495051525354...93 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
不是平面上的圆,而是3D的圆柱体 :-)该课程将以螺旋形式出现。如果你成功地标出了圆柱坐标,这是一个相当合理的事情
那么就不是平面上的圆,而是三维的圆柱体 :-)该课程将以螺旋形式出现。如果你成功地标出了圆柱坐标,这是一个相当合理的事情
实际上,这并不难实现。另外还有2-5行的代码。如果没有人在我之前做,当我有空闲的时候,我就会去做。
但最好能有一个4K屏幕
那么就不是平面上的圆,而是三维的圆柱体 :-)该课程将以螺旋形式出现。如果你成功地标出了圆柱坐标,这是一个相当合理的事情
https://www.mql5.com/en/code/27662
注意代码的速度和大小。
而这一切都离不开Direct X
https://www.mql5.com/en/code/27662
注意代码的速度和大小。
而这一切都离不开Direct X
神奇的!
半径取决于什么?
把戒指做成多色的有难度吗?
也许这种可视化对评估优化中的最佳50个通道或压实中的整个优化很有用。
https://www.mql5.com/en/code/27662
注意速度和代码的大小。
而这一切都离不开Direct X
简单地说,就是魔法。!!!
而如果你在轴上加上一个极地网格,以及改变比例的能力,直到几乎直的 "平行线" (和平行的 "经线"), 你就会得到一个向传统图形的平稳过渡。
https://www.mql5.com/en/code/27662
注意代码的速度和大小。
而这一切都离不开Direct X
谢谢大家!
它是神奇的!
半径取决于什么?
把戒指做成多色的有难度吗?
也许这种可视化对于评估优化过程中的50个最佳通道,或者压实过程中的整个优化过程都很有用。
这个3D图形和旋转控制的代码都适合在这个函数中。
这个函数的输入只是一个价格数组。即使是一个小学生也能理解这些代码。一个一维的价格数组被转换为一个3维的点数组。在XY平面内,价格用极坐标系统表示,其中到中心(0,0)的距离r=sqrt(x2+y2)就是价格值。
颜色选择是这个功能的责任。
其输入p是一个从0到1的数字,其输出是选定的梯度颜色。在这种情况下,颜色图案本身的骨架由6种颜色组成(阵列Col)。
你可以自由地以任何方式、任何方式进行着色
简单地说,就是魔法。!!!
而如果我们在轴上添加一个极地网格,并能够改变比例,直到几乎是直线的 "平行线" (和平行的 "经线"), 我们就可以顺利过渡到传统图形。
当然可以,但我不想用不同的尺度把代码弄得很乱。在这种情况下,对我来说,展示不包含任何多余内容的代码很重要。这样就会更容易理解它。
当然可以,但我不想用不同的尺度把代码弄得很乱。在这种情况下,对我来说,重要的是展示代码,没有任何多余的东西。这将更容易理解它。
尼古拉,关于你的库的一个问题,如何将数据带入专家顾问?
尼古拉,关于你的库的一个问题,如何将数据带入专家顾问?
我不明白这个问题,iCanvas是一个图形库。
你可能在问,如果你通过iCanvas创建了一个具有线条可视化的指标,并让它没有缓冲,那么如何将数据读入EA?那么请你更清楚地表达自己。
首先,没有人禁止你创建缓冲指标数组,就像在标准指标中一样,只需将其做成INDICATOR_CALCULATIONS,然后通过iCustom以常规方式访问数据。
第二,有这样一个强大的工具,作为资源。指示器缓冲区 本质上是相同的资源。无论如何,它们使用相同的机制来存储和访问数据。
处理资源问题。这不是很直接,但它是传输数据的一个重要工具。你可以创建你自己的库,这比经典的缓冲区阵列更有效率。
就个人而言,我使用我自己的设计,我不发表这些设计。它们比iCustom访问更方便、更有效。一切都完全通过资源来实现。