Three.js: Wie subtrahiere ich Geometrie?

Erstellt am 7. Dez. 2011  ·  2Kommentare  ·  Quelle: mrdoob/three.js

Gibt es eine Möglichkeit, Geometrien zu subtrahieren?

Ich habe einen Umriss eines Gebäudes und den Umriss eines Innenhofs. Ich habe den Umriss des Gebäudes um die Höhe extrudiert, um einen Körper für das Gebäude zu schaffen, aber jetzt muss ich den Innenhof aus der Mitte entfernen.

Vielen Dank

Question

Hilfreichster Kommentar

Alle 2 Kommentare

Ich habe die Antwort ausgearbeitet - nicht sicher, ob es der beste Weg ist, aber es funktioniert.

Ich füge die äußere Geometrie im Uhrzeigersinn und dann die Bits hinzu, um sie gegen den Uhrzeigersinn zu einem Pfad zu entfernen, bevor ich sie in eine Form zum Extrudieren konvertiere.

        var path = new THREE.Path();
        // outer clockwise
        path.moveTo(-10, 10);
        path.lineTo(10, 10);
        path.lineTo(10, -10);
        path.lineTo(-10, -10);
        path.lineTo(-10, 10);
        // inner anti-clockwise
        path.moveTo(-5, 5);
        path.lineTo(-5, -5);
        path.lineTo(-2, -5);
        path.lineTo(-2, 5);
        path.lineTo(-5, 5);
        // inner anti-clockwise
        path.moveTo(2, 5);
        path.lineTo(2, -5);
        path.lineTo(5, -5);
        path.lineTo(5, 5);
        path.lineTo(2, 5);

        var height = 20;
        var shapes = path.toShapes();
        var solid = new THREE.ExtrudeGeometry(shapes, { amount: height, bevelEnabled: false });
        var mesh = new THREE.Mesh(solid, materials['building']);
        mesh.position.y = height;
        mesh.rotation.x = 90 * Math.PI * 2 / 360;
        scene.add(mesh);
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen