Discussione sull’articolo "Visualizza questo! Libreria grafica di MQL5 simile a 'plot' del linguaggio R" - pagina 6

 
Nikolai Semko #:
In realtà utilizzo più tele (di solito non più di 4).
Esiste sempre una media aurea. Un estremo è dipingere tutta la statica e tutta la dinamica su un'unica tela, l'altro estremo è dipingere tutti gli oggetti su tele separate.
È importante non dimenticare che se si hanno due tele con trasparenza sovrapposte, la CPU, (forse in Win10-11 la GPU, ma credo sempre la CPU), mescolerà ogni pixel di uno sfondo omogeneo (trasparenza non zero).
Qui possiamo prendere in prestito da JS la pratica di memorizzare nella cache il canvas o una parte di esso per migliorare le prestazioni.
Per quanto riguarda i cerchi antialias, ho già pubblicato una variante di tale cerchio, che è ideale (in termini di prestazioni) per cerchi con raggio inferiore a ~5 pixel. Credo che la funzione si chiami iDot() e si trovi nel codice di 3DStars. È molto primitiva e breve (circa 10 righe di codice). Per i cerchi di raggio maggiore, è tutt'altro che ottimale in termini di prestazioni. Per raggi maggiori, la funzione ad alte prestazioni è già più di 100 righe di codice.
Sì, dopo aver stabilito per anni nuove connessioni neurali nel cervello su tela, ora posso creare una libreria su tela a qualsiasi livello. Ci sarebbero tempo e motivazione.
L'algoritmo di Wu è considerato obsoleto.

Non sono riuscito a trovare una ricerca per iDot() o 3DStars per vedere il codice.

Intendevo prendere in considerazione tutto ciò che si trova sotto la tela, compreso il grafico stesso (colore dello sfondo) e il colore dei suoi elementi (barre, linee ask/bid, ecc.).

Quando si sposta questa tela con uno sfondo trasparente con elementi semitrasparenti disegnati su di essa, tutti i pixel dovrebbero essere disegnati correttamente.

Ora non è così:


 
Nikolai Semko #:

Artem, non si tratta di compiti banali che richiedono nuove connessioni neurali. Ad esempio, in SVG esiste il concetto di viewBox. Ho già visto molti video su come funziona, ho letto molta documentazione, ho scritto molto codice, eppure a volte rimango ancora perplesso. Non ho ancora le connessioni neurali necessarie, anche se più volte mi è sembrato di aver capito tutto.

Beh, noi crediamo ancora in te ;)
 

Forum sul trading, sui sistemi di trading automatizzati e sulla verifica delle strategie di trading

Discussione dell'articolo "Visualise it! Una libreria grafica in MQL5 come analogo di R".

Anatoli Kazharski, 2023.07.31 17:39

...

Intendevo prendere in considerazione tutto ciò che si trova sotto la tela, compreso il grafico stesso (colore di sfondo) e il colore dei suoi elementi (barre, linee ask/bid, ecc.).

Quando si sposta questa tela con uno sfondo trasparente con elementi semitrasparenti disegnati su di essa, tutti i pixel dovrebbero essere disegnati correttamente.

Ora non è così:


Ecco un esempio in cui una tela (con un cerchio blu) si trova sopra un'altra tela (un rettangolo blu con un'immagine) e anche in questo caso non tiene conto di ciò che è disegnato sulla tela sottostante:


 
Anatoli Kazharski #:

Non è stato possibile trovare una ricerca per iDot() o 3DStars per visualizzare il codice.

Intendevo prendere in considerazione tutto ciò che si trova sotto la tela, compreso il grafico stesso (colore di sfondo) e il colore dei suoi elementi (barre, linee ask/bid, ecc.).

Mentre si sposta questa tela con uno sfondo trasparente con elementi semitrasparenti disegnati su di essa, tutti i pixel dovrebbero essere disegnati correttamente.

Ora non è così:


https://www.mql5.com/ru/forum/227736/page72#comment_25130501

Anche in questo caso i colori sono sfumati con lo sfondo
https://www.mql5.com/ru/forum/451355/page5#comment_48450810
 
Nikolai Semko #:
h ttps://www.mql5.com/ru/forum/227736/page72#comment_25130501

Anche in questo caso i colori si fondono con lo sfondo
https://www.mql5.com/ru/forum/451355/page5#comment_48450810

Grazie! Sono esempi molto belli! Quindi mi sbagliavo.

Non ho ancora guardato il codice in dettaglio, ma perché la trasparenza non viene disegnata come previsto nel CCanvas predefinito?

 
Anatoli Kazharski #:

Grazie! Sono esempi molto belli! Quindi mi sbagliavo.

Non ho ancora esaminato il codice in dettaglio, ma perché la trasparenza non viene disegnata come previsto nel CCanvas predefinito?

Ci sono molte cose che non vanno.
Sembra che non l'abbiano finito perché il programmatore che ci stava lavorando è stato licenziato. Potrei sbagliarmi.
 
Nikolai Semko #:
Ci sono molte cose che non vanno.
La sensazione è che non l'abbiano finito perché il programmatore che se ne occupava è stato licenziato. Potrei sbagliarmi.

Nikolay, puoi fare un elenco di cosa e come è auspicabile cambiare in CCanvas standard? Secondo te. Come è ora e come dovrebbe essere. E perché.

 
Artyom Trishkin #:

Nicholas, puoi fare un elenco di cosa e come è auspicabile cambiare in CCanvas standard? Secondo la tua opinione. Come è ora e come dovrebbe essere. E perché.

Abbiamo bisogno di una nuova classe con meno funzioni rispetto a CCanvas. È meglio rendere questa classe il più simile possibile a JS canvas, che non ha molte funzioni in sostanza, per facilitare l'apprendimento e l'adozione, dato che l'intera informatica si sta spostando verso il web.
ma questo è l'ideale.
Probabilmente potrei scrivere qualcosa di simile da solo, ma ci vorrebbe almeno mezzo anno a tempo pieno
anche se personalmente non mi piace tutto ciò che c'è in JS Canvas, ma per la standardizzazione sarebbe giusto implementare qualcosa di simile con piccole modifiche per fare a meno del parsing delle stringhe.

ZY ma per il lavoro normale ho bisogno di rifare il modello di eventi di MT5, perché è semplicemente orribile.

Il canvas in MT5 dovrebbe funzionare due volte più velocemente del canvas JS. Ma per questo (per un'interfaccia non laggante) è necessario cambiare molte cose all'interno di MT5, cosa che Renat non farà mai.

HTML Canvas Reference
HTML Canvas Reference
  • www.w3schools.com
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.
 
Nikolai Semko #:

Abbiamo bisogno di una nuova classe con meno funzioni di CCanvas. È meglio rendere questa classe il più simile possibile a JS canvas, che non ha molte funzioni in sostanza, per facilitare l'apprendimento e l'adozione, dato che l'intera informatica si sta spostando verso il web.
ma questo è l'ideale.
Probabilmente potrei scrivere qualcosa di simile da solo, ma ci vorrebbe almeno mezzo anno a tempo pieno
anche se personalmente non mi piace tutto ciò che c'è in JS Canvas, ma per la standardizzazione sarebbe giusto implementare qualcosa di simile con piccole modifiche per fare a meno del parsing delle stringhe.

Ma per il lavoro normale abbiamo bisogno di rifare il modello di eventi di MT5, perché è semplicemente orribile.

È chiaro che tutto è "sotto i ferri", ma la domanda era comunque un po' diversa. Cosa è auspicabile cambiare/raffinare nella classe esistente...

 
Artyom Trishkin #:

È chiaro che tutto è "sotto i ferri", ma la domanda era comunque un po' diversa. Cosa è auspicabile cambiare/migliorare nella classe esistente...

metodi lisci per dar loro vita. Ora penso che ci siano anche funzioni in CCanvas che non sono documentate.