La tela è forte! - pagina 72

 

Perché preoccuparsi, costruire OpenGL e OSG(http://www.openscenegraph.org/) in Canvas.

allora non solo le stelle voleranno :-)

PS/ come superficie opengl si possono usare "risorse" più precisamente dati per loro - GL può disegnare non solo in schermo, ma semplicemente in array; cioè c'è una certa compatibilità qui

The OpenSceneGraph Project Website
  • www.openscenegraph.org
Project website for OpenSceneGraph
 
Grazie Nikolai - la versione MT4 è stata compilata
 
Jagg #:
Grazie Nikolai - la versione MT4 è stata compilata

Sì.
Ma come sospettavo, a volte si verifica un blocco dell'evento del mouse.
Questo è un bug che MQ difficilmente risolverà. Succede quando il calcolo all'interno dell'OnChartEvent supera un certo valore (circa 10 millisecondi), dopo di che l'evento OnChartEvent si blocca per circa 300 millisecondi.

Questo bug viene aggirato tramite un timer.

Se metti meno di 10000 stelle (ad esempio 5000), questo bug potrebbe non apparire.


PS: come promesso, ho resettato il codice.

File:
Stars.ex4  27 kb
 
Grazie ancora Nikolai - con 3000 funziona perfettamente con MT4
 
Andrey Khatimlianskii #:

Quindi mostratelo, in modo che tutti possano capirlo subito )

Ecco un chiaro esempio con stelle colorate.
A sinistra della linea gialla c'è un grafico con antialias e miscelazione di colori con doppie coordinate.
A destra, non smussato con coordinate int.

Nello screenshot MaxSizeRadius = 2

File:
3DStars.mq5  12 kb
iCanvas_CB.mqh  53 kb
 

Penso che questo thread sia il più competente su Kanvas, quindi per favore risparmia il mio tempo per risolvere da solo il seguente problema.


C'è una risorsa già generata i cui dati sono accessibili tramite ResourceReadImage/ResourceCreate. La risorsa è propria - non di sola lettura.

Devi mettere alcune righe di testo su questa immagine.


In parole povere, avete Data[]-array di pixel e Width. Convertire Data[] di conseguenza.


Risolto con TextOut - basta mettere pronto Data[]-array lì per aggiungere il testo.

 
fxsaber #:

SZ La soluzione è tramite TextOut - proprio lì puoi scrivere un Data[]-array pronto per l'aggiunta di testo.

Sì, c'è solo una piccola sfumatura non documentata.
Se usate il canale alfa (COLOR_FORMAT_ARGB_NORMALIZE), dovete riempirlo non con degli zeri prima di creare la vostra bitmap.

.Erase(0x00FFFFFF);

altrimenti i bordi dei caratteri saranno "frastagliati".

 
Nikolai Semko #:

Sì, solo una piccola sfumatura non documentata.

Grazie!

 

Qualcuno sa dirmi se esiste un codice pronto per la casella di modifica su kanvas.

Sto realizzando un pannello di gomma e ho bisogno di un elemento di questo tipo. Quando si fa clic su di esso, è necessario inserire e cancellare numeri e vedere un cursore lampeggiante.

In caso contrario, farò una normale sostituzione quando si fa clic su di esso.

 
Vitaliy Kuznetsov #:

Qualcuno può indicare se c'è un codice pronto per la casella di modifica su tela.

Sto realizzando un pannello di gomma e ho bisogno di un elemento di questo tipo. Quando si fa clic su di esso, è necessario inserire e cancellare numeri e vedere un cursore lampeggiante.

In caso contrario, farò una normale sostituzione quando si fa clic su di esso.

Non l'ho incontrata, anche se potrebbe essere stata implementata da qualcuno.
il compito non è dei più difficili, ma nemmeno dei più facili.
In ogni caso, una simile implementazione richiede quasi 1.500 righe in JS.(https://goldfirestudios.com/canvasinput-html5-canvas-text-input)
Personalmente non avevo bisogno di un elemento del genere. Questo modo di cambiare i valori (se parliamo di numeri) ha un grosso svantaggio: è impossibile farlo in modo fluido, per cambiare i parametri "al volo" per una migliore visualizzazione. Slider gestisce bene questo aspetto e l'implementazione dello slider è molto più semplice.