将颜色分解为阴影的功能。 - 页 2

 
Alexey Viktorov:

对于CodeBade,你肯定应该用国际语言来写。但为什么在俄语论坛上坚持这样做呢?

就个人而言,我对这个国际组织感到厌恶...因为我根本不懂,对我来说,它比我们的母语俄语要清楚得多。

这段代码的主要问题是,在调试时不支持西里尔文。


而且Alt+G也不起作用(转到变量定义)。


 
而这个成分词是阳性的。
 
Алексей Тарабанов:
而这个成分词是阳性的。

成分 词是女性化的。

 
HSL
HSL — Википедия
HSL — Википедия
  • ru.wikipedia.org
HSL, HLS или HSI (от англ.  ()) — цветовая модель, в которой цветовыми координатами являются тон, насыщенность и светлота. Следует отметить, что HSV и HSL — две разные цветовые модели (lightness — светлота, что отличается от яркости). L = 1 2 ( M A X + M I N ) {\displaystyle L={\begin{matrix}{\frac...
 

Реter Konow
:

用CCanvas类来解决这个问题也非常有趣。你怎么能通过它获得所有原色的色调?

#include <Canvas\iCanvas.mqh> //https://www.mql5.com/ru/code/22164 union rgb {uint clr; uchar c[4];}; void OnStart()   {    rgb c,cc;    double d=5;    while(!IsStopped())      {       c.c[2]=uchar(127.5*(1+sin(d*1.2))+0.4999); c.c[1]=uchar(127.5*(1+sin(d*1.9))+0.4999); c.c[0]=uchar(127.5*(1+sin(d*2.8))+0.4999); // генерируем новый цвет       cc.clr=c.clr;       double k0,k1,k2;       if(c.c[2]>=c.c[1] && c.c[2]>=c.c[0]) {k2=1; if(c.c[2]==0) {k1=1; k0=1;} else {k1=(double)c.c[1]/c.c[2]; k0=(double)c.c[0]/c.c[2];}}// если Red - максимальный цвет       else if(c.c[1]>=c.c[2] && c.c[1]>=c.c[0]) {k1=1; k2=(double)c.c[2]/c.c[1]; k0=(double)c.c[0]/c.c[1];} // если Green - максимальный цвет       else {k0=1; k2=(double)c.c[2]/c.c[0]; k1=(double)c.c[1]/c.c[0];} // если Blue - максимальный цвет       for(int y=0; y<W.Height; y++)         {          double k=255.0*(double)y/(W.Height-1);          c.c[2]=uchar(k2*k+0.4999);          c.c[1]=uchar(k1*k+0.4999);          c.c[0]=uchar(k0*k+0.4999);          Canvas.LineHorizontal(0,W.Width-1,y,ColorToARGB(c.clr,240));         }       Canvas.FillRectangle(W.Width/2-80,W.Height/2-50,W.Width/2+80,W.Height/2+50,ColorToARGB(cc.clr,240));       Canvas.CurentFont("Tahoma",20,22,ColorToARGB(~cc.clr)); // 20 -  размер шрифта, 22 - межстрочный интервал       Canvas.TextPosition(W.Width/2-70,W.Height/2-40);       Canvas.Comm("Текущий цвет:");       Canvas.Comm("R = "+string(cc.c[2]));       Canvas.Comm("G = "+string(cc.c[1]));       Canvas.Comm("B = "+string(cc.c[0]));       ChartChanged(); // на всякий случай контролируем изменение размеров окна, т.к. это скрипт (в индикаторах и экспертах это происходит автоматически)       Canvas.Update();       d+=0.01;       Sleep(30);      } }

梯度计算被突出显示,其余的是输出。


附加的文件:
Gradient.mq5  4 kb
 
Nikolai Semko:

这种代码的主要问题是在调试时不支持西里尔文。

..

而且Alt+G也不起作用(转到变量定义)。

哈!

这是这个 "俄罗斯 "代码的一个非常严重的缺点!

彼得,你是如何调试你的代码的?你如何看待某些 "讲俄语 "的变量的数值?

* * *

正如上面正确指出的那样--有HSL和HLS系统,它们早已标准化,从RGB的转移是使用标准公式进行的。此外,已经有一个实验室系统,重新发明轮子有什么意义?

我不太清楚这些功能可以应用在哪里。这是本地程序员的一个非常常见的错误--他们写了非常有趣的程序,但随着应用的演示--遇到了困难。六个月前,我记得,有一堂使用Canvas的工作课被提出来--有一个非常令人印象深刻的演示。但我没有看到这些功能的任何用途,作者承诺会演示这些功能,但从未做过。

我有一个印象,这些演示大多是为了娱乐一个人的自我--"看我怎么做"。我相信这是件好事...但对大多数人来说是没有用的,因为大多数人对应用感兴趣,但在应用方面有一个问题。

很多人都会写一些有用的小附件。但是,到目前为止,我看到只有fxsaber 提出了一个库,我认为这个库对每个人都非常有用。我不知道有这样一部卷帙浩繁,但普遍有用的作品。在这种情况下,有了Canvas,就更悲哀了--我无法想象这一切能以一种对论坛受众中任何可辨别的部分有用的方式来应用。

我希望看到具体的应用实例,即使不透露源代码--只是想知道它在哪里可以得到有效的应用?

 
Nikolai Semko:

这段代码的主要问题是,在调试时不支持西里尔文。


而且Alt+G也不起作用(转到变量定义)。

尼古拉,问题不在于代码或调试器,问题在于人,在于关系。如果我对这段代码感兴趣,我就会不费吹灰之力地替换变量名,调试就能成功。但是要求使用一个国际的,外国人不知道我们伟大的语言......并要求不要下载和测试这个代码...

 
Georgiy Merts:

哈!

这是这个 "俄罗斯 "代码的一个非常严重的缺点!

彼得,你是如何调试你的代码的?你如何看待特定的 "俄语 "变量的价值?

* * *

正如上面正确指出的那样--有HSL和HLS系统,这些系统早已标准化,从RGB的转换是使用标准公式进行的。此外,已经有一个实验室系统,重新发明轮子有什么意义?

我不太清楚这些功能可以应用在哪里。这是本地程序员的一个非常常见的错误--他们写了非常有趣的程序,但随着应用的演示--遇到了困难。六个月前,我记得,有一堂使用Canvas的工作课被提出来--有一个非常令人印象深刻的演示。但我没有看到这些功能的任何用途,作者承诺会演示这些功能,但从未做过。

我有一个印象,这些演示大多是为了娱乐一个人的自我--"看我怎么做"。我相信这是件好事...但对大多数人来说是没有用的,因为大多数人对应用感兴趣,但在应用方面有一个问题。

很多人都会写一些有用的小附件。但是,到目前为止,我看到只有fxsaber 提出了一个库,我认为这个库对每个人都非常有用。我不知道有这样一部卷帙浩繁,但普遍有用的作品。在这种情况下,有了Canvas,就更悲哀了--我无法想象这一切能以一种对论坛的任何可辨识的部分有用的方式来应用。

我希望看到具体的应用实例,即使不透露源代码--只是想知道它在哪里可以得到有效的应用?

乔治,我正在调试我脑中的代码。:) 我一直是这样做的。我从逻辑上寻找错误。Alert()函数 对我帮助很大。

对我来说,总是需要寻找自己的解决方案。 我并不介意MetaEditor缺乏调试功能的问题。我已经适应了它,并找到了我自己的错误检测方法。但在全球发展 中,只使用他人的(尽管是非常清晰的)语言是一个真正的障碍。如果你是一个独立的全球开发者,你会理解我。俄语帮助我从自己的大脑中压榨出最大的生产力。事实上,我用两种语言编程。6 0%为俄语,40%为英语。双语代码比单语代码更容易记忆。它的可读性也更好。只看英文代码(有很多语法),你无法记住很多东西,也无法编程。这就是为什么每个人都使用图书馆。而我则可以轻松地背诵我的程序,因为我关心的是自己的阅读和背诵的便利性,而不是遵守别人发明的标准。这就是为什么我自己做了这么多事情。

将图形应用于交易方案将使它们在市场上的销售更具吸引力。你也必须照顾到这一点。这就是实际应用。


一般来说,表格、控制程序行为、设置自动装置、输出信息--这就是图形的作用。你认为交易项目不需要它,这很奇怪。

 
Nikolai Semko:

梯度计算被高亮显示,其余的输出都在屏幕上。


谢谢你,尼古拉。是否有可能发送一种颜色并一次性获得所有的色调?有这样的方法吗?

 
Nikolai Semko:

标记被高亮显示,用于梯度计算,其余的输出在屏幕上。


顺便说一句,从图片上看,这里的色彩分解并不完整。只有一半。这个范围应该从绝对的白色延伸到绝对的黑色,直到某一特定颜色的所有色调。