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