C#-Bibliothek für 3D-Mathematik (Rotation)

Ich arbeite an einem C#-Projekt, in dem ich einige Vektoren drehen muss. Bisher habe ich eine ziemlich komplizierte Lösung mit Rotationsmatrizen verwendet, aber jetzt brauche ich auch Unterstützung für die Quaternion-Rotation (und wahrscheinlich die Konvertierung von einem zum anderen).

Die meisten Bibliotheken, die ich finde, sind für Grafikentwicklungen gemacht. Ich muss jedoch keine Grafiken ausgeben / rendern. Die XNA- und DirectX-Referenzseiten zeigen Details zu den Klassen Matrix, Vector3 und Quaternion, die anscheinend alles bieten, was ich brauche. Aber die scheinen irgendwie veraltet zu sein?

Ich habe wirklich keine Erfahrung in diesem Bereich der Bibliotheken und bin mir nicht sicher, ob es aktuellere Lösungen gibt oder ob dies nicht wirklich wichtig ist.
Natürlich wäre es toll, wenn es auch eine leichtere Bibliothek gäbe. Da die Rotation in Echtzeit erfolgen soll, sollte die Bibliothek eine gute Performance aufweisen.

Also habe ich diese XnaGeometry-Bibliothek ausprobiert , die genau das zu bieten schien, was ich brauchte. Aber es scheint, dass dies auch ziemlich fehlerhaft ist, was die Quaternion-Rotation betrifft. Hier bin ich also und suche wieder nach einer Bibliothek.
Vielleicht hat die Math.NET- Bibliothek das, was Sie brauchen?

Antworten (2)

Am Ende habe ich das MonoGame Framework verwendet , das eine Open-Source-Implementierung des XNA-Frameworks ist. Ich habe gerade das Paket MonoGame.Framework.WindowsDX zu meinem Projekt hinzugefügt, das die gleichen Namespaces wie die XNA-Dokumentation von Microsoft bietet . So konnte ich problemlos using Microsoft.Xna.Framework;in meinen Klassen Quaternion, Matrixund Vector3Objekte verwenden.

Für mich scheint dies eine gute Lösung zu sein, wenn Sie keine Spiele-, Grafik- oder Rendering-Funktionen benötigen. Sie können einfach das NuGet-Paket hinzufügen und die benötigten XNA-Klassen verwenden.

Die offensichtlichere Wahl wäre gewesen, System.Numerics zu verwenden . Alternativ haben wir in meiner Firma eine Open-Source-Bibliothek Vim.Math3d von System.Numerics in Kombination mit vielen nützlichen Algorithmen und Strukturen von MonoGame entwickelt. Der Vollständigkeit halber führen wir eine Liste ähnlicher 3D-Mathematikbibliotheken .