A função de decompor a cor em tons. - página 6

 

Voltar a falar sobre o algoritmo de decomposição de cores. Peço desculpas pelo fora de tópico.

Se alguém tem dúvidas sobre como e onde aplicar o algoritmo, pode encontrar explicações nas páginas anteriores.

 
Vladislav Andruschenko:

Posso colocar em meus "10 kopeks" sobre a GUI e tudo o que está sendo discutido aqui.

Todos têm um sonho, um hobby, uma paixão.

Alguns vão pescar, outros como fotografia, outros como viagem, outros como modelagem de aviões....


E assim é aqui:

Os desenvolvedores do MetaTrader deram um bom passo na popularização da linguagem MQL5!

Todos os postos sobre a falta de padrões ou estruturas são necessários por aqueles que os utilizam.


A mesma criação de bibliotecas GUI, por exemplo, por Anatoly, é seu hobby. Ele o fez e o mostrou a todos.

Eu observava e me perguntava... e no início do que ele começou a "fazer" com sua biblioteca - eu tinha planos de "fazer uma GUI" há muito tempo , Mas eu me acobardei.

E então eu não "peguei" alguém que fez isso com muita dificuldade.

Ele fez esta biblioteca e tenho certeza de que muitas pessoas a usam.

Para ele, era um hobby, uma coisa favorita a fazer. Ele só estava envolvido neste projeto (provavelmente) e estava farto dele. E ele está farto disso agora.


Para Peter, ele também tem seu hobby. Peter faz sua própria GUI.

E cada um insistirá por sua própria conta.

Alguns precisam dele, outros não.


Por que provar alguma coisa? Mudou de idéia? Tentando ser "útil"? BECOME THEM, não tente.


Algumas pessoas precisam de GUI nos EAs, outras não.

Alguém desenha jogos em MQL, e alguém não precisa de nenhum parâmetro em um EA.

Todos são tão diferentes que não vale a pena convencer ninguém de algo.

Que cada um tenha seu próprio ponto de vista e se intrometa em seus próprios negócios. Então, não haverá conflitos.


Todos nós começamos em algum lugar. Todos nós aprendemos algo uns com os outros. Por que todos costumavam ser mais amigáveis?

Vladislav. Sou movido por um desejo de entender minha diferença com as pessoas. Por que eu e eles temos visões tão diferentes. Isso é tudo.

Algumas pessoas o vêem como publicidade de seu produto, outras como uma fixação, outras como uma fixação e assim por diante.

Mas na verdade - eu discuto e comprovo, porque quero entender os outros e a mim mesmo.

 
Реter Konow:

Vladislav. Sou movido por um desejo de entender minha diferença com as pessoas. Por que eu e eles temos visões tão diferentes. Isso é tudo.

Algumas pessoas o vêem como um anúncio para seu produto, outras como uma fixação, outras como um fixador e assim por diante.

Mas na verdade - eu discuto e comprovo, porque quero entender os outros e a mim mesmo.

Asseguro-lhes que há: OOP e programação de procedimentos.

Onde quer que o OOP seja necessário - OOP é usado.

Onde o OOP é necessário, um tipo simples de programação - programação procedural - é utilizado.

Há tantas pessoas quanto opiniões.

Se você for a uma empresa de TI e lhes disser que você programa em PP, eles o mandarão embora.

Aqui você faz o que quer fazer.


Assim que você começar a escrever tutoriais em sua GUI, você construirá "seu" exército de fãs. Haverá também um exército de trolls, mas isso também é uma obrigação :-)

Deixe-os discutir entre si o que é melhor. GUI no OOP ou GUI no PP.


Basta confiar em mim.

Faça o que quiser e haverá quem o utilize.
Não discuta, não se envolva em conflitos. Muito esforço é desperdiçado nisto, é melhor canalizar todo o seu poder para seu projeto!

 
Vladislav Andruschenko:

Asseguro-lhes que há: OOP e programação de procedimentos.

Onde é necessário o OOP, o OOP é usado.

Onde o OOP é necessário, um tipo simples de programação - programação procedural - é utilizado.

Há tantas pessoas quanto opiniões.

Se você for a uma empresa de TI e lhes disser que você programa em PP, eles o mandarão embora.

Aqui você faz o que quer fazer.


Assim que você começar a escrever tutoriais em sua GUI, você construirá "seu" exército de fãs. Haverá também um exército de trolls, mas isso também é uma obrigação :-)

Deixe-os discutir entre si o que é melhor. GUI no OOP ou GUI no PP.


Confie em mim neste caso.

Faça o que quiser e haverá quem o utilize.
Não discuta, não entre em conflito. Muita energia é gasta nisso, é melhor canalizá-la toda para o seu projeto!

Certo. Eu concordo com você.

E o que você acha do meu algoritmo?

Na sua opinião, quão conveniente e útil é isso?

 
Реter Konow:

Bom. Eu concordo com você.

O que você acha do meu algoritmo?

Na sua opinião, quão conveniente e útil é isso?


Eu, como adepto do "fácil e simples", prefiro sua versão.

Mas eu, como muitos outros, aderi à idéia de que o OOP é obrigatório.

Por causa de meu trabalho específico, sei que "cliente", por exemplo, precisa de um código claro, mesmo com nomes russos de variáveis. Os clientes russos em geral são loucos por isso.

E como eles "encomendam" um programa, significa que não entendem nada e precisam de um código mais leve. Com nomes de variáveis russas.......


Mas eu percebi há muito tempo que a programação personalizada o arrasta para baixo! Não há autodesenvolvimento. Agora é mais interessante fazer seus próprios projetos sem mostrar o código. Onde você já pode usar o OOP.

E em geral o usuário precisa de um simples construtor, onde haja elementos e estes possam ser gerenciados diretamente sobre os gráficos.


Novamente. Cada solução tem seu próprio exército de ventiladores.

Faça o que quiser...


isto é tudo por experiência, por isso não estou alegando ser correto, o que eu disse....

Li todos os tópicos em discussão geral, (tudo porque sou preguiçoso demais para navegar abaixo dessa seção :-) ) e estou surpreso.

Às vezes eu quero inserir "meus 12 centavos", mas para provar algo a alguém, tiro energia.

Da mesma linha - a discussão do "que você precisa no mercado" - todos precisam de algo diferente.

Alguém precisa de um parâmetro RISK totalmente automático, e alguém precisa de 100500 parâmetros!

É melhor ter um projeto e desenvolvê-lo até o ponto de exaustão e só depois assumir o próximo.

Do que, mudando o nome do programa e a imagem do testador, multiplicar centenas e milhares de projetos que ninguém precisa....


IMHO

Respeito a todos!!!

 

Obrigado por seu feedback. Ainda bem que você gostou. Eu ficaria feliz se você pudesse usar este algoritmo em seus desenvolvimentos.

Acabou de ficar um pouco fora de tópico aqui. Isso é culpa minha. Era o algoritmo de que estávamos falando. O resto dos tópicos pode ser ignorado.
 
Vladislav Andruschenko:


Eu, como adepto do "fácil e simples", gosto mais de sua versão.

Mas eu, como muitos outros, mantenho a idéia de que o OOP é obrigatório.

Por causa do meu trabalho, sei que "cliente", por exemplo, precisa de código claro, mesmo com nomes russos de variáveis. Os clientes russos em geral são loucos por isso.

E como eles "encomendam" um programa, significa que não entendem nada e precisam de um código mais leve. Com nomes de variáveis russas.......

...

Em minha prática, ninguém jamais ficou preso, exceto 3 pessoas neste fórum.

Eu, por exemplo, vomito de tal código, não leio mais de 3 linhas, e o apago.

 
Vitaly Muzichenko:

Em minha prática, ninguém jamais foi arrastado, exceto 3 pessoas neste fórum.

Eu, por exemplo, estou farto de tal código, não leio mais de 3 linhas e o apago.

Você, como um falante de inglês, sinta-se livre para ignorar minha decisão. Existem poucas palavras em inglês.

A propósito, já que você é tão bem versado em código inglês, ajude-me a analisar o código sugerido por Nikolay Semko:

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

Sinceramente, eu não entendo como funciona. Tem muitas sílabas curtas em inglês. Exatamente o que você gosta.

 
Vitaly Muzichenko:

Em minha prática, ninguém jamais foi arrastado, exceto 3 pessoas neste fórum.

Eu, por exemplo, fico farto de tal código, não leio mais de 3 linhas, e depois o apago.

Concordo plenamente com você.

As variáveis devem estar em um idioma internacional.


Mas eu estou falando de "clientes".

Conheci alguns que queriam que as variáveis estivessem em russo.

Como posso argumentar com isso? As "necessidades" do cliente.

É por isso que eu desisti das ordens há um ano, para não ter que provar nada.


Por exemplo, você faz um pedido com nomes em inglês, ninguém lhe diz nada.

E você tenta criar variáveis em russo - ele adoraria. E ele vai se arrastar porque não sabe inglês.

 
Реter Konow:

Você, como um falante de inglês, sinta-se livre para ignorar minha decisão. Há poucas palavras em inglês.

A propósito, como você é tão bom com o código inglês, por favor, me ajude com o código proposto por Nikolay Semko:

Sinceramente, eu não entendo como funciona. Tem muitas sílabas curtas em inglês. Exatamente o que você gosta.


Bem, os nomes em inglês não são inventados para nada.

Posso lhe dar mais um exemplo quando os nomes russos matarão seu código:

Você dá seu código a um cliente que não tem Cirílico. É isso aí. .... all gone..... :-)


Mais um ponto.

Por exemplo, o tradutor GOOGLE tem um idioma nativo do inglês. Se você escrever o título em inglês, eles poderão traduzi-lo com o tradutor.

Caso contrário, haverá problemas.

Bem, é apenas um ditado para o futuro.


Para os russos, o idioma é o russo.

Para o resto de nós, o inglês é mais familiar.

O espanhol é também a língua mais popular.

Razão: