La funzione di scomporre il colore in sfumature. - pagina 10

 
Реter Konow:

Nikolai, sembra di stare all'asilo. L'affermazione "4 volte più veloce" non è valida, perché non è dimostrata.


  1. Commentate la linea nella vostra versione della mia soluzione su MT5 e vedrete la differenza.

Questa linea influisce sul disegno dell'intero rettangolo per qualche motivo. Ma non è il mio difetto. Guarda qui.

Continuando a cercare quei glitch che hai. Voglio vedere se è davvero a causa del mio algoritmo.


E spegni l'inutile sfarfallio dei numeri. Togliete tutte le cose inutili. Lasciate che un semplice rettangolo con un gradiente di un colore originale sia visualizzato una volta. Nessun espediente inutile.

Peter, ho scritto "4 volte più veloce" dopo aver fornito il codice con le prove. Non capisco cos'altro sia necessario.

Ho spento tutto - il problema continua. Ho visto questo glitch prima ancora di fare questo dodger. Se inserisci il mio gradiente, questo glitch non c'è anche con la sporgenza del testo. Questo è già dimostrato da me nel codice allegato in questo post.

 
Yury Kulikov:

Mi unirò alle "accuse", non potrei prenderlo :)

Un buon esempio di come non programmare. Se questo è il modo in cui l'intera GUI è scritta, non la vedremo per un po'. :(

Ogni riga è un "capolavoro": un tale mucchio di errori e bloopers, tanta speranza che mql4 funzioni. Ora capisco perché si usa mt4.

Penso che la pubblicazione di tali codici e la successiva reazione alle critiche non sia rispettosa del pubblico del forum. Non vogliono farvi del male, vogliono aiutarvi.

Per quanto riguarda il confronto degli algoritmi, è possibile confrontarli visivamente. Non è che tu abbia offerto la prova in numeri che il tuo algoritmo dà sfumature al 99% vicine alle "sfumature delle finestre".

A sinistra c'è più o meno il tuo approccio, a destraquello di Nikolai Semko. (È stato utilizzato uno script di NikolaiSemko modificato).


Hai preso questa sceneggiatura? L'hai installato su MT4? Controllato? L'hai confrontato? (Sono tutti ansiosi di partecipare alle accuse)).

Per quanto riguarda lo script - non è il mio algoritmo. Nikolai l'ha modificato senza sapere come. È lui quello con cui parlare di queste foto.

 
Nikolai Semko:
In generale, una funzione per ottenere un array di gradienti tra due colori è più utile. Poiché è più semplice e più utile nella pratica.

Se avete bisogno di un gradiente da un colore al bianco o al nero, potete ottenerlo con questa funzione.


Te l'avevo detto. Spegnere lo sfarfallio non necessario. Emette un singolo rettangolo. Lei ha un problema di disegno che non ha niente a che vedere con il mio algoritmo. Te l'ho fatto notare. Risolvi il problema.

 
Реter Konow:

Te l'avevo detto. Spegnere lo sfarfallio non necessario. Emette un singolo rettangolo. Lei ha un problema di disegno che non ha niente a che vedere con il mio algoritmo. Te l'ho fatto notare. Capire cosa fare.

Peter, basta con le parole. Dimostralo con il codice con visualizzazione, come ho fatto io. Ripeto, non ho cambiato la tua funzione, ma solo tirato fuori un valore uint da essa invece di una stringa.
Vi prego di fornirmi finalmente un esempio funzionante della vostra funzione senza stringhe in MQL5!

 
Yury Kulikov:

Mi unirò alle "accuse", non potrei prenderlo :)

Un buon esempio di come non programmare. Se questo è il modo in cui l'intera GUI è scritta, non la vedremo per un po'. :(

Ogni riga è un "capolavoro": un tale mucchio di errori e bloopers, tanta speranza che mql4 funzioni. Ora capisco perché si usa mt4.

Penso che la pubblicazione di tali codici e la successiva reazione alle critiche non sia rispettosa del pubblico del forum. Non vogliono farvi del male, vogliono aiutarvi.

Per quanto riguarda il confronto degli algoritmi, è possibile confrontarli visivamente. Non è che tu abbia offerto la prova in numeri che il tuo algoritmo dà sfumature al 99% vicine alle "sfumature delle finestre".

A sinistra c'è più o meno il tuo approccio, a destraquello di Nikolai Semko. (È stato utilizzato uno script di NikolaiSemko modificato).


Perché metti queste gif? Vuoi fare impressione? Ahimè, dovrai impegnarti di più. Sono troppo sofisticato nella grafica. Meglio prendere il mio algoritmo, metterlo su mt4 e stampare i colori. Poi, controlla con la tavolozza dei colori, stimato MENTOR.

 
Nikolai Semko:

Peter, basta con le parole. Dimostrare con codice con visualizzazione, come ho fatto io. Ripeto: non ho cambiato la tua funzione, ma solo tirato il valore uint da esso invece di stringa

Sono in procinto di tradurre il mio codice in MT5. Ve lo mostrerò quando avrò finito.

 
Nikolai Semko:
In generale, la funzione per ottenere un array di gradienti tra due colori è più utile.

Probabilmente sarebbe un po' più veloce in questo modo:

void Gradient(uint clr1,uint clr2,uint &arr[],uint size)
  {
   if(size==0) return;
   ArrayResize(arr,size);
   rgb c1,c2;
   c1.clr=clr1;
   c2.clr=clr2;
   double R1=c1.c[2],G1=c1.c[1],B1=c1.c[0];
   double R2=c2.c[2],G2=c2.c[1],B2=c2.c[0];
   double deltaR=(R2-R1)/(size-1);
   double deltaG=(G2-G1)/(size-1);
   double deltaB=(B2-B1)/(size-1);
   R1 += 0.4999;
   G1 += 0.4999;
   B1 += 0.4999;
   for(uint i=0;i<size;i++)
     {
      R1+=deltaR; c1.c[2]=uchar (R1);
      G1+=deltaG; c1.c[1]=uchar (G1);
      B1+=deltaB; c1.c[0]=uchar (B1);
      arr[i]=c1.clr;
     }
  }
 
Nikolai Semko:

Peter, basta con le parole. Dimostrare con il codice con la visualizzazione, come ho fatto io. Ripeto - non ho cambiato la tua funzione, ma solo tirato il valore uint da esso invece di stringa

Perché non controlli con la tavolozza dei colori? È davvero così difficile?

E perché commentare una linea con output di testo cambia il disegno di tutto il rettangolo?

 
Реter Konow:

Perché non controllate con la tavolozza dei colori? Quanto può essere difficile?

Potresti almeno mettere un link o qualcosa del genere. A cosa paragonarlo.

 
Tutti i glitch sembrano essersi verificati quando sono passato a MT5. Non c'è niente del genere su MT4. La natura esigente di MT5 è molto più alta, il che crea problemi. Ma questo non significa che la soluzione non sia buona. Hai solo bisogno di modificare il codice.