2016-10-31 4 views
0

In meinem aktuellen Projekt muss ich einige Berechnungen im 3D-Raum durchführen, wie zum Beispiel die Berechnung von Schnittpunkten von Linien mit Ebenen und die Bestimmung, ob ein Punkt innerhalb eines Dreiecks/Rechtecks ​​/ (Flächen-) Polygons liegt .Eingebaute Funktionen für 3D-Berechnungen

Der Namespace Systems.Windows.Media.Media3D bietet einige Funktionen für diese Zwecke wie Kreuz- und Punktprodukte von 3D-Vektoren. Leider kann ich keine guten Tutorials zur Funktionalität dieses Namespaces finden - die meisten Tutorials befassen sich mit dem Zeichnen, das für mich nicht relevant ist. Nur aus Intellisense ist es schwer herauszufinden, was verfügbar ist, und einige Methoden sind statisch anstelle von Instanzmethoden (z. B. Point3D.Substract). Und viele Google-Suchvorgänge verweisen auf die Funktionalität des Xna-Namespace - der unter Windows 8/10 nicht verfügbar scheint.

Gibt es andere "gemeinsame" Namespaces im .Net-Framework für solche Berechnungen?

Oder kennen Sie gute Tutorials für Berechnungen mit Media3d?

Natürlich könnte ich meine eigene Bibliothek dafür schreiben, aber das fühlt sich an wie das Rad neu zu erfinden.

+0

Für Punkte innerhalb des Rechtecks ​​hat das 'Rect3D' einige Methoden, wenn ich mich erinnere, aber im Allgemeinen erwarte ich nicht viel von' Media3D' Namensraum in Bezug auf 3D-Berechnung. Es hat sehr kleine Objekte, die perfekt sind, um Daten zu speichern und über ein anderes System zu übertragen, verglichen mit 3D-Engine-Objekten von Drittanbietern. – Franck

+0

Ich bin mit Media3d nicht vertraut, suche aber generell nach Raytracer + C#. Ich bin sicher, dass Sie Opensource-Projekt finden, die tun, was Sie benötigen. –

Antwort

0

In CodeProject wies mich jemand auf MathNet.Spatial (http://spatial.mathdotnet.com/). Ihre Bibliothek enthält einige nützliche Funktionen für meinen Zweck, aber es gibt viele Funktionen, die ich selbst noch schreiben muss. Daher sind weitere Vorschläge willkommen.

Verwandte Themen