2017-04-25 4 views
0

Gibt es eine Möglichkeit zu erkennen, ob ein Knoten im Modell Löcher hat?Kanten oder Löcher in Form eines Knotens im Modell finden

Zum Beispiel wollen wir wissen, ob es ein Fenster in einer Wand oder einer anderen Öffnung gibt, und wie viele solcher Öffnungen und deren Position.

Ich habe versucht, über die Polygone des Knotens zu iterieren, ihren Schwerpunkt und normal zu nehmen und zu versuchen, eine Diskontinuität zu finden, aber es gibt kein hohes Vertrauensergebnis.

Es wurde auch versucht, gerade Linien außer den an den Kanten zu zählen, aber manchmal erscheint eine gerade Linie in der Mitte einer Wand.

Gibt es einen anderen Weg, dies zu tun? Vielleicht gibt es eine eingebaute Funktion in Three.js, um Kanten eines Meshes zu zählen?

+0

sollten Sie diesen Artikel [hier] (https://aboosbox.wordpress.com/2017/04/17/three-js-for-absolute-beginners/) überprüfen –

+0

@Aboopallikara Wie ist das relevant? – shinzou

+0

Haben Sie [EWS] (http://www.devdept.com/eyeshot/webservice) in Betracht gezogen? Sie können das Modell in XML konvertieren und auf alle BRep-Daten zugreifen, z. B. Außen- und Innenflächenschleifen. – abenci

Antwort

1

Es gibt wahrscheinlich sehr einfache Möglichkeiten zum Zählen von Kanten und so weiter, aber ich fürchte, sie werden nicht viel helfen, es sei denn, Sie haben extrem einfache Geometrie und keine Ausnahmefälle. Für eine allgemeinere Lösung denke ich, dass es am besten ist, aus Ihren Polygonen ein Volumenmodell mit ihren Eckpunkten, Kanten, Normalen usw. zu generieren und eine 3D-Geometriebibliothek, die mit Solids arbeiten kann, zu analysieren ihre Topologie. Hier

ist das erste, das entstand, als für "js 3d boolean"

https://duckduckgo.com/?q=js+3d+boolean

FinalMesh Boolean 3D-Bibliothek Suche:

http://finalmesh.com/boolean3d.htm

Dieses sagt, dass es verarbeiten kann Polygone mit Löchern und optimieren sie, einschließlich Entfernen von Löchern, Entfernen von Extrapunkten und Erzeugen von Polygonen aus Dreiecken.

ein Polygon P gegeben ist, wird seine Löcher entfernen könnte ein Loch weniger Polygon Q zu erzeugen, dann subtrahieren P von Q alle Öffnungen in P.

Ich bin sicher, es gibt viele andere zur Verfügung aus

dort zu erhalten für Sie zu bewerten und zu vergleichen.

+0

Danke, gute Idee, aber ich sehe nicht, dass Finalmesh eine js-Bibliothek, nur eine Offline-Software und C++ - Bibliothek hat. Gibt es eine andere Bibliothek, die Sie empfehlen? – shinzou

+0

oh sorry, ich habe es nicht bemerkt. versuche dich selbst zu suchen. Dieser Suchstring funktioniert möglicherweise besser: ["JavaScript Bibliothek Boolesche Operationen 3d"] (https://duckduckgo.com/?q=javascript+library+boolean+operationen+3d). zum Beispiel findet es [csg.js] (https://evanw.github.io/csg.js/). –

+0

überprüfen Sie auch diese anderen Stackoverflow-Threads: - [three.js binden zwei Formen zusammen als eins] (https://stackoverflow.com/questions/8322759/three-js-bind-two-shapes-together-as-one) - [Wie dynamische csg-Operation mit three.js zu tun] (https://stackoverflow.com/questions/22138151/how-to-do-dynamic-csg-operation-with-three-js). –

Verwandte Themen