Three.js: Как вычесть геометрию?

Созданный на 7 дек. 2011  ·  2Комментарии  ·  Источник: mrdoob/three.js

Есть ли способ вычитать геометрию?

У меня есть план здания и план внутреннего двора. Я выдавил контур здания по высоте, чтобы создать твердое тело для здания, но теперь мне нужно удалить внутренний двор по центру.

благодаря

Question

Самый полезный комментарий

Вы также можете использовать это:
http://learningthreejs.com/blog/2011/12/10/constructive-solid-geometry-with-csg-js/

Все 2 Комментарий

Я нашел ответ - не уверен, что это лучший способ, но он работает.

Я добавляю внешнюю геометрию по часовой стрелке, а затем биты, которые нужно удалить против часовой стрелки, в путь перед преобразованием в форму для выдавливания.

        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);

Вы также можете использовать это:
http://learningthreejs.com/blog/2011/12/10/constructive-solid-geometry-with-csg-js/

Была ли эта страница полезной?
0 / 5 - 0 рейтинги