Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 3.js形孔高度_Javascript_Three.js - Fatal编程技术网

Javascript 3.js形孔高度

Javascript 3.js形孔高度,javascript,three.js,Javascript,Three.js,我正在尝试从原始形状构建一个带有孔的网格,然后是一个挤出边几何。问题是,我添加的孔总是穿过生成网格的整个高度。有没有办法使洞的高度变短,这样最终这些洞就不会穿过整个形状 要拉伸的形状的参考代码: var heartShape = new THREE.Shape(); heartShape.moveTo( 25, 25 ); heartShape.bezierCurveTo( 25, 25, 20, 0, 0, 0 ); blah var innerCircle = new THREE.Pat

我正在尝试从原始形状构建一个带有孔的网格,然后是一个挤出边几何。问题是,我添加的孔总是穿过生成网格的整个高度。有没有办法使洞的高度变短,这样最终这些洞就不会穿过整个形状

要拉伸的形状的参考代码:

var heartShape = new THREE.Shape();

heartShape.moveTo( 25, 25 );
heartShape.bezierCurveTo( 25, 25, 20, 0, 0, 0 );
blah

var innerCircle = new THREE.Path();
innerCircle.moveTo(blah);
heartShape.holes.push(innerCircle);

var extrudeSettings = { amount: 8, bevelEnabled: true, bevelSegments: 2, steps: 2, bevelSize: 1, bevelThickness: 1 };

var geometry = new THREE.ExtrudeGeometry( heartShape, extrudeSettings );

var mesh = new THREE.Mesh( geometry, new THREE.MeshPhongMaterial() );

谢谢

在三点挤压计量法中,孔深度没有单独的参数。您将需要两个单独的操作来解决它

一种解决方案是根据内圈路径(首先转换为形状)使用另一个挤出“塞住”它


为了实现您想要的目标,最好使用“构造实体几何”(CSG)。您可以从开始,并阅读有关新语法的内容。lib本身就是@prisoner849是的,CSG肯定有助于对这类事情进行推理,但问题是它太贵了,无法在任何地方使用(我已经在使用它)。因此,我正在探索足够简单但成本更低的方法。
var extrudeSettingsForPlug = { amount: 4, bevelEnabled: true, bevelSegments: 2, steps: 2, bevelSize: 1, bevelThickness: 1 }; 

var geometry = new THREE.ExtrudeGeometry( innerCircleShape, extrudeSettingsForPlug );