View Full Version : Scomposizione Figura in Triangoli
cagnulein
21-02-2005, 11:11
Salve ragazzi, ho un problema che va al di là delle mie competenze di programmazione :)
Dunque la questione è molto semplice:
io sto cercando di creare con le D3D un'immagine di un parallelepipedo a dimensioni variabili. Il problema è: esiste un algoritmo che mi calcola i punti dei 3 veritici che compongono ogni triangolo che andranno a comporre la mia figura?
C'è un modo più semplice per la costruzione in 3D con le D3D?
Grazie
ma scusa, che ci vuole a definirli manualmente? se è un parallelepipedo sarà composto solo da 12 triangoli, piuttosto che scervellarti sull'algoritmo fai prima a definirli a mano in base alle dimensioni date, no?
lombardp
21-02-2005, 14:51
Controlla anche se l'elenco dei vertici di ogni triangolo deve riportare in vertici in senso orario rispetto alla faccia visibile. Potrebbe essere necessario per il corretto funzionamento del rendering engine.
cagnulein
21-02-2005, 19:01
Originariamente inviato da 71104
ma scusa, che ci vuole a definirli manualmente? se è un parallelepipedo sarà composto solo da 12 triangoli, piuttosto che scervellarti sull'algoritmo fai prima a definirli a mano in base alle dimensioni date, no?
come ho detto le dimensioni sono variabili ;)
come ho detto le dimensioni sono variabili ;)
embe'? scrivi del codice che *in base alle dimensioni date* calcoli la posizione esatta dei vertici; non mi dire che questo è difficile! :p
Dato un parallelepipedo che ha origine in (x,y,z) = (0,0,0) di dimensioni L = larghezza, H = altezza, P = profondità
N° Triang ; vertice 1 ; vertice 2 ; vertice 3
01 ; (0,0,0) ; (L,0,0) ; (0,H,0) faccia posteriore
02 ; (L,H,0) ; (L,0,0) ; (0,H,0) faccia posteriore
03 ; (0,0,P) ; (L,0,P) ; (0,H,P) faccia anteriore
04 ; (L,H,P) ; (L,0,P) ; (0,H,P) faccia anteriore
05 ; (0,0,0) ; (L,0,P) ; (L,0,0) faccia inferiore
06 ; (0,0,0) ; (L,0,P) ; (0,0,P) faccia inferiore
07 ; (0,H,0) ; (L,H,P) ; (L,H,0) faccia superiore
08 ; (0,H,0) ; (L,H,P) ; (0,H,P) faccia superiore
09 ; (0,H,0) ; (0,0,P) ; (0,0,0) faccia sinistra
10 ; (0,H,0) ; (0,0,P) ; (0,H,P) faccia sinistra
11 ; (L,H,0) ; (L,0,P) ; (L,0,0) faccia destra
12 ; (L,H,0) ; (L,0,P) ; (L,H,P) faccia destra
Spero sia questo che ti serve...
Ciao
cagnulein
22-02-2005, 18:39
Originariamente inviato da 71104
embe'? scrivi del codice che *in base alle dimensioni date* calcoli la posizione esatta dei vertici; non mi dire che questo è difficile! :p
no questo non sarebbe così difficile, ma il difficile viene quando il parallelepipedo acquisisce degl'angoli (per fare delle punte) davanti e dietro (fino ad un massimo di 10 angoli per testa, e 10 angoli per coda ;) ).
Dato un parallelepipedo che ha origine in (x,y,z) = (0,0,0) di dimensioni L = larghezza, H = altezza, P = profondità N° Triang ; vertice 1 ; vertice 2 ; vertice 3 01 ; (0,0,0) ; (L,0,0) ; (0,H,0) faccia posteriore 02 ; (L,H,0) ; (L,0,0) ; (0,H,0) faccia posteriore 03 ; (0,0,P) ; (L,0,P) ; (0,H,P) faccia anteriore 04 ; (L,H,P) ; (L,0,P) ; (0,H,P) faccia anteriore 05 ; (0,0,0) ; (L,0,P) ; (L,0,0) faccia inferiore 06 ; (0,0,0) ; (L,0,P) ; (0,0,P) faccia inferiore 07 ; (0,H,0) ; (L,H,P) ; (L,H,0) faccia superiore 08 ; (0,H,0) ; (L,H,P) ; (0,H,P) faccia superiore 09 ; (0,H,0) ; (0,0,P) ; (0,0,0) faccia sinistra 10 ; (0,H,0) ; (0,0,P) ; (0,H,P) faccia sinistra 11 ; (L,H,0) ; (L,0,P) ; (L,0,0) faccia destra 12 ; (L,H,0) ; (L,0,P) ; (L,H,P) faccia destra Spero sia questo che ti serve...
grazie, anche se c'ero anche io qui ;)
Originariamente inviato da cagnulein
no questo non sarebbe così difficile, ma il difficile viene quando il parallelepipedo acquisisce degl'angoli (per fare delle punte) davanti e dietro (fino ad un massimo di 10 angoli per testa, e 10 angoli per coda ;) ).
e questo però mica l'avevi detto! :)
quello che ti avevo suggerito io era praticamente quello che daryl74 ha scritto in pseudocodice.
Comunque la storia degli angoli non la ho capita.
Ci vorrebbe un disegno esplicativo...
Ciao
cagnulein
23-02-2005, 12:04
si scusate mi ero spiegato male inizialmente...comunque ormai per questioni di tempistiche sono dovuto passare al DirectDraw quindi non ne ho più necessità...appena si sistemano un po' le cose vi faccio un disegnino.
Grazie ancora per l'aiuto :rolleyes:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.