La función de descomponer el color en matices. - página 6

 

Volvemos a hablar del algoritmo de descomposición del color. Pido disculpas por el off-topic.

Si alguien tiene dudas sobre cómo y dónde aplicar el algoritmo, puede encontrar explicaciones en las páginas anteriores.

 
Vladislav Andruschenko:

Puedo poner mis "10 kopeks" sobre la GUI y todo lo que se está discutiendo aquí.

Todo el mundo tiene un sueño, una afición, una pasión.

A algunos les gusta pescar, a otros les gusta la fotografía, a otros les gusta viajar, a otros les gusta modelar aviones....


Y así es aquí:

¡Los desarrolladores de MetaTrader han dado un buen paso en la popularización del lenguaje MQL5!

Todos los posts sobre la falta de patrones o estructuras son necesarios para los que lo utilizan.


La misma creación de bibliotecas GUI, por ejemplo por Anatoly, es su afición. Lo hizo y lo mostró a todo el mundo.

Observé y me pregunté... y en el principio de lo que comenzó a "hacer" con su biblioteca - He tenido planes para "hacer una GUI" durante mucho tiempo , Pero me acobardé.

Y entonces no "alcancé" a alguien que lo hizo con mucha fuerza.

Él hizo esta biblioteca y estoy seguro de que mucha gente la utiliza.

Para él era un pasatiempo, lo que más le gustaba hacer. Sólo se dedicaba a este proyecto (probablemente) y estaba harto. Y ahora está harto.


Peter también tiene su afición. Peter crea su propia interfaz gráfica de usuario.

Y cada uno insistirá en lo suyo.

Algunos lo necesitan, otros no.


¿Por qué demostrar nada? ¿Cambiaste de opinión? ¿Tratando de ser "útil"? Conviértete en ellos, no lo intentes.


Algunas personas necesitan GUI en los EAs, otras no.

Alguien dibuja juegos en MQL, y alguien no necesita parámetros en un EA en absoluto.

Todo el mundo es tan diferente que no tiene sentido convencer a nadie de algo.

Que cada uno tenga su punto de vista y se ocupe de sus asuntos. Así no habrá conflictos.


Todos empezamos en alguna parte. Todos hemos aprendido algo de los demás. ¿Por qué todo el mundo solía ser más amable?

Vladislav. Me mueve el deseo de entender mi diferencia con la gente. Por qué ellos y yo tenemos puntos de vista tan diferentes. Eso es todo.

Algunos lo ven como una publicidad de su producto, otros como una fijación, otros como una idea fija y así sucesivamente.

Pero, de hecho, discuto y pruebo, porque quiero entender a los demás y a mí mismo.

 
Реter Konow:

Vladislav. Me mueve el deseo de entender mi diferencia con la gente. Por qué ellos y yo tenemos puntos de vista tan diferentes. Eso es todo.

Algunos lo ven como una publicidad para su producto, otros lo ven como una fijación, otros lo ven como una idea fija, etc.

Pero, de hecho, discuto y argumento porque quiero entender a los demás y a mí mismo.

Te aseguro que sí: OOP y programación procedimental.

Siempre que se necesita la POO, se utiliza la POO.

Cuando se necesita OOP, se utiliza un tipo de programación simple, la programación procedimental.

Hay tanta gente como opiniones.

Si vas a una empresa de informática y les dices que programas en PP, te mandarán a paseo.

Aquí se hace lo que se quiere hacer.


En cuanto empieces a escribir tutoriales sobre tu interfaz gráfica, crearás "tu" ejército de fans. También habrá un ejército de trolls, pero eso también es imprescindible :-)

Que discutan entre ellos qué es mejor. GUI en OOP o GUI en PP.


Sólo confía en mí.

Haz lo que quieras y habrá quien lo utilice.
No discutas, no entres en conflictos. Se desperdicia mucho esfuerzo en esto, ¡es mejor canalizar toda tu energía en tu proyecto!

 
Vladislav Andruschenko:

Te aseguro que sí: OOP y programación procedimental.

Donde se necesita OOP, se utiliza OOP.

Cuando se necesita OOP, se utiliza un tipo de programación simple, la programación procedimental.

Hay tanta gente como opiniones.

Si vas a una empresa de informática y les dices que programas en PP, te mandarán a paseo.

Aquí se hace lo que se quiere hacer.


En cuanto empieces a escribir tutoriales sobre tu interfaz gráfica, crearás "tu" ejército de fans. También habrá un ejército de trolls, pero eso también es imprescindible :-)

Que discutan entre ellos qué es mejor. GUI en OOP o GUI en PP.


Confía en mí en este caso.

Haz lo que quieras y habrá quien lo utilice.
No discutas, no entres en conflicto. Se gasta mucha energía en esto, ¡es mejor canalizarla toda en tu proyecto!

De acuerdo. Estoy de acuerdo contigo.

¿Y qué opinas de mi algoritmo?

¿Qué tan conveniente y útil es en su opinión?

 
Реter Konow:

Bien. Estoy de acuerdo contigo.

¿Qué te parece mi algoritmo?

¿Qué tan conveniente y útil es en su opinión?


Yo, como partidario de lo "fácil y sencillo", prefiero tu versión.

Pero yo, como muchos otros, me adhiero a la idea de que la OOP es obligatoria.

Debido a mi trabajo específico, sé que "cliente", por ejemplo, necesita un código claro, incluso con nombres rusos de variables. Los clientes rusos en general están locos por ella.

Y como "piden" un programa significa que no entienden nada y necesitan un código más ligero. Con nombres variables rusos.......


Pero hace tiempo que me di cuenta de que la programación a medida te arrastra. No hay autodesarrollo. Ahora es más interesante hacer tus propios proyectos sin mostrar el código. Donde ya se puede utilizar OOP.

Y en general el usuario necesita un constructor sencillo, donde haya elementos y se puedan manejar directamente en los gráficos.


Otra vez. Cada solución tiene su propio ejército de fans.

Haz lo que quieras...


todo esto es por experiencia, así que no pretendo ser correcto, lo que he dicho....

He leído todos los hilos en la discusión general, (todo porque soy demasiado vago para navegar por debajo de esa sección :-) ) y estoy sorprendido.

A veces quiero insertar "mis 12 centavos", pero demostrarle algo a alguien me quita energía.

En la misma línea, la discusión sobre "lo que se necesita en el mercado", cada uno necesita algo diferente.

Alguien necesita un automático completo con un parámetro de riesgo, y alguien necesita 100500 parámetros.

Es mejor tener un proyecto y desarrollarlo hasta el agotamiento, y sólo entonces pasar al siguiente.

Entonces, cambiando el nombre del programa y la imagen del probador, se multiplican cientos y miles de proyectos que nadie necesita....


IMHO

¡¡¡Respeto a todos!!!

 

Gracias por sus comentarios. Me alegro de que te haya gustado. Estaría encantado de que utilizaras este algoritmo en tus desarrollos.

Me he desviado un poco del tema. Eso es culpa mía. Era el algoritmo del que hablábamos. El resto de los temas pueden ser ignorados.
 
Vladislav Andruschenko:


A mí, como partidario de lo "fácil y sencillo", me gusta más tu versión.

Pero yo, como muchos otros, me quedo con la idea de que la OOP es obligatoria.

Por mi trabajo, sé que "cliente", por ejemplo, necesita un código claro, incluso con nombres rusos de las variables. Los clientes rusos en general están locos por ella.

Y como "piden" un programa significa que no entienden nada y necesitan un código más ligero. Con nombres variables rusos.......

...

En mi consulta, nadie se ha atascado, salvo 3 personas de este foro.

Yo, por ejemplo, vomito de ese código, lo leo no más de 3 líneas, y lo borro.

 
Vitaly Muzichenko:

En mi consulta, nunca se ha arrastrado a nadie, salvo a 3 personas de este foro.

Yo, por ejemplo, estoy harto de ese código, no leo más de 3 líneas y lo borro.

Usted, como angloparlante, es libre de ignorar mi decisión. Hay pocas palabras en inglés.

Por cierto, ya que eres tan bueno con el código en inglés, ayúdame a analizar el 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, no entiendo cómo funciona. Tiene muchas sílabas cortas en inglés. Justo lo que te gusta.

 
Vitaly Muzichenko:

En mi consulta, nunca se ha arrastrado a nadie, salvo a 3 personas de este foro.

Yo, por ejemplo, me harto de ese código, no leo más de 3 líneas, y luego lo borro.

Estoy completamente de acuerdo con usted.

Las variables deben estar en un idioma internacional.


Pero estoy hablando de "clientes".

Me encontré con algunos que querían que las variables estuvieran en ruso.

¿Cómo puedo discutir eso? El cliente "necesita".

Por eso abandoné las órdenes hace un año, para no tener que demostrar nada.


Por ejemplo, si haces un pedido con nombres en inglés, nadie te dice nada.

Y trata de crear variables en ruso - le encantaría. Y se arrastrará porque no sabe inglés.

 
Реter Konow:

Usted, como angloparlante, es libre de ignorar mi decisión. Hay pocas palabras en inglés.

Por cierto, ya que eres tan bueno con el código en inglés, por favor ayúdame con el código propuesto por Nikolay Semko:

Sinceramente, no entiendo cómo funciona. Tiene muchas sílabas cortas en inglés. Justo lo que te gusta.


Bueno, los nombres en inglés no se inventan por nada.

Puedo dar un ejemplo más cuando los nombres rusos matan tu código:

Pasas el código a un cliente que no tiene cirílico. Eso es todo. .... todo se ha ido..... :-)


Un punto más.

Por ejemplo, el traductor de GOOGLE tiene como lengua materna el inglés. Si escribe el título en inglés, podrán traducirlo con el traductor.

De lo contrario, habrá problemas.

Bueno, es un decir para el futuro.


Para los rusos, el idioma es el ruso.

Para el resto de nosotros, el inglés es más familiar.

El español es también el idioma más popular.