2009-02-03 17 views
24

Jede gute Bibliotheken für Quaternion Berechnungen in C/C++?Quaternion-Bibliotheken in C/C++

Randnotiz: irgendwelche gute Tutorials/Beispiele? Ich habe es googelt und war auf den ersten paar Seiten, aber vielleicht haben Sie einige Demos/Labs von Compsci oder Mathe-Kurse, die Sie teilen könnten?

Dank

+5

+1 für Quaternionen. Sie sind genial. – jtbandes

+0

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

Antwort

8

Sie mit Boost-versuchen könnten - in der Regel guten Ort, um mit zu beginnen. Sie haben dafür eine dedicated sublibrary.

Für die Beispiele schauen Sie sich die Dokumentation und die Komponententests an, die mit Boost kommen.

4

DirectX hat eine eigene quaternion functions, wie auch einige andere 3D-Bibliotheken.

Meiner Meinung nach ist der beste Weg zu lernen, wie Quaternionen funktionieren, sich selbst durch die Mathematik zu arbeiten. Die Wikipedia-Seite unter quaternions und conversion enthält alle Formeln, die Sie benötigen. Ich habe meine eigene Quaternion-Bibliothek daraus geschrieben :) (Es ist in Haskell, also werde ich mich nicht darum kümmern.)

+0

Gute Idee mit DirectX und Grafik. Lernen kann einige ansprechende visuelle Effekte erzeugen. – Anonymous

+0

Es ist wirklich nicht so schwer, sich selbst zu tun, wenn Sie die Bibliotheken nicht finden können. Ich hatte kein Problem damit und mein IT-Mathematik-Training war sehr begrenzt (Informatik-Business-Abschluss, keine reine Wissenschaft). –

3

Für Dokumentationen über Quaternionen, lesen Sie sich 3D-Grafik-Lehrbücher durch. Sie sind einfach Matrizen, die den Effekt der 3D-Rotation durch Multiplikation statt durch rechenintensive Trigonometrie erzeugen.

7

Wenn Sie sich entscheiden, Ihre eigene Rolle, oder wollen eigentlich die Mathematik hinter dem Code (nützlich für das Debuggen) zu verstehen, empfehle ich Martin Baker's website hoch. Es sieht primitiv aus, aber die Erklärungen sind gründlich und leicht zu verstehen, und er liefert auch Code an einigen Stellen.

2

Dieses Web, euclideanspace, ist sehr wichtig, wenn Sie mit Quaternionen arbeiten. Es hat alle Rechenschritte, Äquivalenzen, Vereinfachungen, Codebeispiele in verschiedenen Sprachen. Ich habe die meisten meiner Funktionen auf dieser Seite alleine gemacht. Ich bevorzuge das, als eine Bibliothek herunterzuspielen. Funktionen sind einfach zu programmieren und Sie lernen auf dem Weg.

Als Beispiel empfehle ich Ihnen dieses C++ Funktion über eine Quaternionenmultiplikation zu überprüfen: Efficient C++ quaternion multiplication using cv::Mat

2

Es graphene ist, die eine einfache C/GObject Bibliothek mit SIMD-Optimierungen für verschiedene Vektor, Matrix, Quaternion, etc Berechnungen das sind in 3D-Grafiken üblich.