3 Stimmen

Datenstruktur für die Darstellung der Begrenzungen

Ich habe gelesen, dass man die Datenstruktur mit Flügelkanten zur Speicherung einer Randdarstellung. Die verlinkte Seite sagt jedoch, dass dies eine der ältesten Datenstrukturen für die Speicherung von B-Reps ist, gibt es neuere, bessere?

Zweitens: Gibt es eine Implementierung dieser Funktion in C#?

4voto

tfinniga Punkte 6533

Die Datenstruktur, die für ein B-rep verwendet wird, ist der für die polygonale Modellierung sehr ähnlich - Sie ersetzen einfach die Kanten durch Kurven und die Flächen durch Oberflächen.

Le site wikipedia-Seite über polygonale Netze sind mehrere Typen aufgeführt, darunter auch Winged Edge. Ich persönlich mag Halbkantennetze. Das Einzige, was sie nicht gut können, ist nicht-verzweigte Topologie, die Sie vielleicht brauchen, vielleicht aber auch nicht. Wenn doch, suchen Sie nach radialer Kantentopologie.

Außerdem gibt es eine frei verfügbare B-rep-Datenstruktur von OpenNurbs (McNeel, die Hersteller von Rhino). Das bringt Ihnen auch File IO, was nett ist.

3voto

dunn Punkte 11

Boundary Representation Modelling Techniques von Ian Stroud gibt Ihnen einen Überblick über die verschiedenen Ansätze von B-Reps, zusammen mit einer Fülle von Diagrammen mit allen Euler-Operatoren sowie konkreten Datenstrukturen und Algorithmen zur zwingenden Implementierung von B-Reps.

Ob Sie nun ein paar Zeichen weiter in F# vordringen wollen oder nicht, Sie können eine Menge Informationen aus dem Quellcode für Flügel3d (geschrieben in Erlang). Verlaufen Sie sich nur nicht beim Bau von Raumschiffen und vergessen Sie nicht, dass Sie eigentlich programmieren sollten!

Auch die GML ermöglicht es Ihnen, interaktiv zu untersuchen, was Sie mit Ihren B-Reps machen können, und die Datenstruktur ist den Code.

0voto

Joshua Cauble Punkte 1349

Ich bin nicht sicher, ob das hilft, aber es gibt Geometrieobjekte in der XNA-Bibliothek für den Umgang mit 3D-Strukturen und was nicht. Es kann etwas in dort sein. Allerdings ist meine Vermutung, dass es entweder Punkt-basierte oder Dreieck-basierte vs Kante basiert sein wird.

Aber es könnte ein Ort sein, an dem man suchen sollte.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X