Existe-t-il un moyen de soustraire des géométries?
J'ai le contour d'un bâtiment et le contour d'une cour intérieure. J'ai extrudé le contour du bâtiment par la hauteur pour créer un solide pour le bâtiment, mais je dois maintenant supprimer la cour du milieu.
Merci
J'ai trouvé la réponse - je ne sais pas si c'est le meilleur moyen, mais cela fonctionne.
J'ajoute la géométrie extérieure dans le sens des aiguilles d'une montre, puis les bits à supprimer dans le sens inverse des aiguilles d'une montre à un chemin avant de convertir en une forme à extruder.
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);
Vous pouvez également utiliser ceci:
http://learningthreejs.com/blog/2011/12/10/constructive-solid-geometry-with-csg-js/
Commentaire le plus utile
Vous pouvez également utiliser ceci:
http://learningthreejs.com/blog/2011/12/10/constructive-solid-geometry-with-csg-js/