2009-02-03 12 views
24

Qualsiasi buona libreria per i calcoli di quaternion in C/C++?librerie quaternion in C/C++

Nota a margine: buoni tutorial/esempi? Ho google e sono stato nelle prime pagine, ma forse hai qualche demo/lab da corsi di matematica o compsci che potresti/vorresti condividere?

Grazie

+5

+1 per quaternioni. Sono fantastici. – jtbandes

+0

http://cqrlib.sourceforge.net/ – sastanin

risposta

8

Si potrebbe provare con Boost - di solito buon punto di partenza con. Hanno uno dedicated sublibrary per quello.

Per quanto riguarda gli esempi, consultare la documentazione e i test unitari forniti con Boost.

4

DirectX ha il proprio quaternion functions, così come molte altre librerie 3D.

Secondo me, il modo migliore per imparare come funzionano i quaternioni è quello di scavare la matematica da solo. La pagina di Wikipedia su quaternions e conversion contiene tutte le formule necessarie. Ho scritto la mia libreria di quaternioni da quella :) (È in Haskell, quindi non mi preoccuperò di postarla.)

+0

Buona idea con DirectX e grafica. L'apprendimento può produrre alcuni effetti visivi accattivanti. – Anonymous

+0

Non è davvero difficile da fare da soli, se non riesci a trovare le librerie. Non ho avuto problemi con esso e il mio IT training matematico è stato molto limitato (laurea in informatica, non pura scienza). –

3

Per la documentazione sui quaternioni, consulta i libri di testo di grafica 3D. Sono semplicemente matrici che producono l'effetto della rotazione 3D utilizzando la moltiplicazione anziché la trigonometria computazionalmente costosa.

7

Se si decide di rotolare il proprio, o in realtà vuole capire la matematica dietro il codice (utile per il debug), consiglio vivamente Martin Baker's website. Sembra primitivo, ma le spiegazioni sono complete e facili da seguire e fornisce anche il codice in alcuni punti.

2

Questo web, euclideanspace, è molto importante se si lavora con i quaternioni. Ha tutte le operazioni matematiche passo dopo passo, equivalenze, semplificazioni, esempi di codice in diverse lingue. Ho seguito la maggior parte delle mie funzioni seguendo questa pagina. Preferisco quella del calcolo di una biblioteca. Le funzioni sono facili da programmare e si impara lungo la strada.

Come esempio vi consiglio di controllare questa funzione C++ su una moltiplicazione quaternione: Efficient C++ quaternion multiplication using cv::Mat

2

C'è graphene che è una libreria semplice C/GObject con ottimizzazioni SIMD per vario vettore, matrice, quaternione, ecc calcoli che sono comuni nella grafica 3D.

Problemi correlati