Функция разложения цвета на оттенки. - страница 6

 

Возвращаемся к разговору о алгоритме разложения цвета. Прошу прощения за отклонение от темы.

Если у кого то есть вопросы о том, как и где применять алгоритм, тот может найти объяснения на предыдущих страницах.

 
Vladislav Andruschenko:

Можно я вставлю свои "10 копеек" ? по поводу GUI и вообще всего, о чем здесь обсуждается.

У каждого человека есть мечта, хобби, увлечение. 

Кто-то занимается рыбалкой, кто-то любит фото,  кто-то любит путешествия, кто-то моделирует самолетики....


Так и здесь: 

Разработчики MetaTrader сделали хороший шаг по популяризации языка MQL5

Все посты о недостаточности шаблонов или структур - нужны тем, кто это использует.


То же самое создание библиотек GUI, например от Анатолия - это его увлечение. Он это сделал и показал всем. 

Я смотрел и удивлялся... и еще в начале того, что он начал "вытворять" с своей библиотекой - у меня давно уже было в планах "запилить GUI" , но я струсил. 

А потом уже не стал "догонять" того, кто занялся этим очень жестко. 

Он сделал эту библиотеку и я уверен, что ею пользуются многие. 

Для него это было увлечением, любимым делом. Он занимался только этим проектом (наверное) и болел им. И болеет сейчас. 


Для Peter тоже есть свое увлечение, хобби. Peter делает свой GUI

И каждый будет настаивать на своем.

Кому-то нужно, кому-то нет.


Зачем что-то доказывать? Переубеждать? Пытаться быть "полезным" ?  - БУДЬТЕ ИМ, а не пытайтесь. 


Кому то нужен GUI в советниках, кому то нет.

Кто - то рисует игры на MQL, а кому-то вообще параметров не нужно в советнике. 

Здесь все настолько разные, что переубеждать кого-то в чем-то нет смысла. 

Пусть каждый имеет свою точку зрения и занимается своим делом. Тогда не будет конфликтов. 


Мы все с чего-то начинали. Друг у друга чему-то учились. Почему раньше все были дружелюбнее? 

Владислав. Мною движет желание понять мою разницу с людьми. Почему у меня и у них столь разные взгляды. Вот и все. 

Одни, воспринимают это как рекламу своего продукта, другие как зацикленность, третьи, - как фикс-идею и прочее.

Но на деле, - я спорю и доказываю, потому что хочу понять других и себя.

 
Реter Konow:

Владислав. Мною движет желание понять мою разницу с людьми. Почему у меня и у них столь разные взгляды. Вот и все. 

Одни, воспринимают это как рекламу своего продукта, другие как зацикленность, третьи, - как фикс-идею и прочее.

Но на деле, - я спорю и доказываю, потому что хочу понять других и себя.

Я Вас уверяю, есть:  ООП и Процедурное программирование.

Там где нужно ООП - используют ООП.

Там где нужно ПП - используют простой вид программирования - процедурный.

Сколько людей, столько и мнений.

Понятное дело, что если ВЫ  пойдете на IT фирму и скажете, что программируете в ПП - Вас пошлют. 

Здесь же Вы занимаетесь тем, что хотите. 


Как только Вы Начнете писать обучающий статьи по своему GUI - у Вас будет набираться "своя" армия фанатов. Будет так же армия троллей, но это тоже нужно :-)

Пусть они спорят между собой, что лучше. GUI на ООП или GUI на ПП. 


Просто поверьте мне.

Делайте то, что Вам нравится и найдутся те, кто будет это использовать. 
Не доказывайте, не вступайте в конфликты. На это тратится много сил, лучше направить всю силу в свой проект! 

 
Vladislav Andruschenko:

Я Вас уверяю, есть:  ООП и Процедурное программирование.

Там где нужно ООП - используют ООП.

Там где нужно ПП - используют простой вид программирования - процедурный.

Сколько людей, столько и мнений.

Понятное дело, что если ВЫ  пойдете на IT фирму и скажете, что программируете в ПП - Вас пошлют. 

Здесь же Вы занимаетесь тем, что хотите. 


Как только Вы Начнете писать обучающий статьи по своему GUI - у Вас будет набираться "своя" армия фанатов. Будет так же армия троллей, но это тоже нужно :-)

Пусть они спорят между собой, что лучше. GUI на ООП или GUI на ПП. 


Просто поверьте мне.

Делайте то, что Вам нравится и найдутся те, кто будет это использовать. 
Не доказывайте, не вступайте в конфликты. На это тратится много сил, лучше направить всю силу в свой проект! 

Хорошо. Согласен с Вами.

А что Вы думаете про мой алгоритм?

Насколько он удобен и полезен в Вашем понимании?

 
Реter Konow:

Хорошо. Согласен с Вами.

А что Вы думаете про мой алгоритм?

Насколько он удобен и полезен в Вашем понимании?


мне, как стороннику "легко и просто" - больше нравится Ваш вариант. 

Но я , как и многие, придерживаюсь к тому, что ООП обязателен. 

Ввиду своей специфики работы я знаю, что "заказчику", например, нужен понятный код, даже с русскими названиями переменными. Русские заказчики вообще от этого тащатся.

А раз они "заказывают" программу, значит ничего не понимают и им бы полегче код нужен. С русскими названиями переменных.......


Но я давно уже понял, что программирование на заказ - тянет тебя на дно! Нет саморазвития. Сейчас уже интереснее делать свои проекты, без показа кода. Где уже можно использовать ООП

А вообще пользователю нужен простой конструктор, где есть элементы и ими можно управлять прямо на графике. 


Опять же. У каждого решения есть своя армия фанатов. 

Просто делайте то, что Вам нравится...


все это из опыта, поэтому не претендую на правильность, высказанных мною, слов.... 

я читаю все ветки практически из "ОБЩЕЕ ОБСУЖДЕНИЕ", (все потому, что листать ниже этого раздела лень :-) ), многому удивляюсь.

Иногда хочется вставить "свои 12 копеек", но доказывать что-то кому-то отбирает энергию. 

Из той же оперы - обсуждение "что нужно в маркете" - да каждому нужно свое.

Кому - то полный автомат с одним параметром РИСК, а кому-то нужно 100500 параметров! 

Лучше иметь один проект и развивать его до посинения и полного истощения, а только потом браться за следующий. 

Чем , меняя названия программы и картинку с тестера, плодить сотни и тысячи проектов, которые никому ну нужны....


ИМХО

с Уважением ко всем!!!

 

Спасибо за отзыв. Рад что Вам понравилось. Буду рад, если используете этот алгоритм в своих разработках.  

Тут просто немного отклонились от темы. Это по моей вине. Разговор шел именно об алгоритме. Остальные темы можно проигнорировать.
 
Vladislav Andruschenko:


мне, как стороннику "легко и просто" - больше нравится Ваш вариант. 

Но я , как и многие, придерживаюсь к тому, что ООП обязателен. 

Ввиду своей специфики работы я знаю, что "заказчику", например, нужен понятный код, даже с русскими названиями переменными. Русские заказчики вообще от этого тащатся.

А раз они "заказывают" программу, значит ничего не понимают и им бы полегче код нужен. С русскими названиями переменных.......

...

На моей практике ещё ни кто не тащился, кроме 3-х человек на этом форуме.

Меня к примеру выворачивает от такого кода, Я его читаю не более 3-х строк, и удаляю.

 
Vitaly Muzichenko:

На моей практике ещё ни кто не тащился, кроме 3-х человек на этом форуме.

Меня к примеру выворачивает от такого кода, Я его читаю не более 3-х строк, и удаляю.

Вы, как англоязычный человек, смело игнорьте мое решение. Там мало английских слов.  

Кстати, раз уж вы так хорошо разбираетесь с английским кодом, помогите разобрать код предложенный Николаем Семко:

#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);
     }
  }

Честно говоря, не понял как он работает. Тут много коротких английских слогов. Как раз, то что вам нравится.

 
Vitaly Muzichenko:

На моей практике ещё ни кто не тащился, кроме 3-х человек на этом форуме.

Меня к примеру выворачивает от такого кода, Я его читаю не более 3-х строк, и удаляю.

Я с Вами полностью согласен. 

Переменные должны быть на международном языке. 


Но я говорю о "заказчиках".

Мне попадались такие, которые хотели, чтобы переменные были на русском. 

А как тут поспорить? никак. Заказчику "нужно"

Поэтому я и отказался уже год как от заказов, чтобы ничего никому не доказывать. 


Вы вот например делаете заказ с английскими названиями, Вам никто ничего не говорит. 

А Вы попробуйте заказчику сделать переменные на русском - ему понравится. И он будет тащиться потому, что он не знает английского. 

 
Реter Konow:

Вы, как англоязычный человек, смело игнорьте мое решение. Там мало английских слов.  

Кстати, раз уж вы так хорошо разбираетесь с английским кодом, помогите разобрать код предложенный Николаем Семко:

Честно говоря, не понял как он работает. Тут много коротких английских слогов. Как раз, то что вам нравится.


Ну названия на английском придумали не просто так. 

Я могу Вам привести еще один такой пример, когда русские названия убьют ваш код:

Вы передаете код заказчику, у которого нет кириллицы. Все. .... все пропало..... :-)


Еще один момент.

Например GOOGLE переводчик имеет родной язык английский. И если Вы напишите название на английском , то его смогут перевести с помощью переводчика. 

А иначе будут проблемы.

Ну это я так, на будущее просто говорю.  


а вообще нужно ориентироваться на всех, чтобы не было дискриминации. для русских - русский язык.

Для остального более привычный - Английский.

Еще бы Испанский - ведь этот язык считается самым популярным. 

Причина обращения: