Re: Grafico 3D real time
-
Ho guardato i seguenti esempi :
https://doc.qt.io/qt-5.11/qtdatavisualization-audiolevels-example.html
https://doc.qt.io/qt-5.11/q3dscatter.htmlMa:
- nel primo non capisco quale/i sia/siano la/e funzione/i che mi permettono di leggere i dati nel tempo
- nel secondo c'è un modo per leggere i dati in maniera dinamica come nel primo esempio (magari da un file che viene aggiornato ogni tot secondi) e fare in modo che vengano plottati sul grafico?
Quello che devo fare è plottare su un grafico 3D xyz dei punti che rappresentano la posizione nello spazio di un oggetto. I valori di posizione li ho già ricavati da un altro programma che ha come input i dati che mi legge un accellerometro.
-
@Lorenz_95 said in Re: Grafico 3D real time:
nel primo non capisco quale/i sia/siano la/e funzione/i che mi permettono di leggere i dati nel tempo
Concordo non sia un gran bel design. Praticamente puoi immaginare
AudioLevelsIODevice
come fosse un file.m_audioInput->start(m_device);
fa in modo che l'audio input venga salvato su quel "file" (QAudioInput
chiamawriteData
al suo interno). Internamente pero'AudioLevelsIODevice
invece di salvare l'input lo usa per plottarlo.Anche nel secondo caso il concetto e' sempre lo stesso:
- crea un
QScatterDataArray
che contiene le serie - crea un
QScatterDataRow
per ogni serie che contiene i punti - use
QScatterDataProxy::resetArray
per aggiornare il grafico
Se sei piu' praticon con model/view puoi usare
QItemModelScatterDataProxy
ma internamente usa lo stesso metodo di sopra quindi non e' molto piu' efficiente. - crea un
-
Grazie per la risposta, adesso mi è più chiara la situazione. E che sono nuovo e sto appena cercando di capire come usare QT.
Solo un paio di cosa che non mi sono chiare:
- QScatterDataProxy::resetArray mi aggiorna il grafico ma tiene memoria anche dei vecchi punti che ho plottato?
- Quando parli di "serie" intendi ad esempio {X=1, Y=0, Z=2}