PDA

View Full Version : [Visual C++] Come posso fare per disegnare un insieme di punti 3d?


DomusP45
20-12-2013, 09:15
Salve a tutti,
sto usando OpenCV e visual C++ 2010 per un progettino.

Mi servirebbe ora però, poter visualizzare in una finestra a parte un insieme di punti che metto nello spazio 3d man mano che li acquisisco (i punti sono in coordinate x,y,z)

Sapete consigliarmi cosa utilizzare (libreria da integrare o altro) per ottenere questa rappresentazione? Non devo fare niente di astronomico, ma mi serve poter verificare nello spazio dove stanno questi punti per avere poi una visione di insieme.

Cosa mi consigliate??

DomusP45
23-01-2014, 10:04
Nessuno sa darmi una mano con OpenGL?

Alla fine dovrei creare un thread a bassa priorità che semplicemente ogni tot prende la lista dei punti e disegna i cubi relativi (i punti sono centri di cubi).

Avevo pensato alla funzione "wiredCube" ma non ho idea di come fare a farlo con un thread, perchè tutti gli esempi che ho trovato sono tutti con nel main il fatto di "mainloop" e quindi come fare per usare un singolo thread, che lavori a bassa priorità e non faccia nient'altro che disegnare in una finestra i cubi man mano che glieli passo?

Daniels118
23-01-2014, 10:11
Non sarebbe più facile disegnare i nuovi cubi nel momento che li inserisci invece di fare un thread separato?
Comunque puoi creare un thread con la funzione di sistema CreateThread.

DomusP45
23-01-2014, 10:53
Non sarebbe più facile disegnare i nuovi cubi nel momento che li inserisci invece di fare un thread separato?
Comunque puoi creare un thread con la funzione di sistema CreateThread.

Non è il thread come crearlo, è come disegnare tramite un thread con OpenGL

Daniels118
23-01-2014, 11:14
Scusa ma continuo a non capire quale sia esattamente la difficoltà, hai già del codice su cui lavorare? Se lo inserisci possiamo dargli un'occhiata.

DomusP45
23-01-2014, 11:37
Scusa ma continuo a non capire quale sia esattamente la difficoltà, hai già del codice su cui lavorare? Se lo inserisci possiamo dargli un'occhiata.

Allora, ho una lista "vector" di cubi, caratterizzati da un centro (x,y,z) e dalla dimensione del lato.

Mi serve avere un thread che prenda questo oggetto, lo scorra (con gli opportuni cicli) e cubo per cubo, lo disegni.
Come scorrere il vettore, e passargli i punti ed il lato lo so, ma non so come usare un thread con dentro le funzioni di disegno OpenGL svincolate dal main, come invece ho trovato in tutti gli esempio cercando con google...del tipo che creano la funzione di disegno, quella di parametri etc...e poi, nel main le richiamano e alla fine mettono "mainloop" che garantisce l'esecuzione continua del codice fino alla chiusura della finestra OpenGL aperta.

Questa cosa, per averla in un solo thread che si occupi di tutto questo (cioè aprire una finestrella OpenGL e disegnarci dentro i cubi man mano) come si fa?

EDIT: Ho risolto facendo tutto dal main.