STL 对象的横截面使用三个.js



我正在尝试获取我使用 three.js 的 STLLoader 函数加载的心脏模型的横截面。 我目前正在尝试将 ThreeCSG 包装器用于 csg.js 库,与此堆栈溢出帖子相同。

这是我的 csg 减法代码

function modelLoadedCallBack( geometry ) {
    material = new THREE.MeshPhongMaterial( { color: model.color } );
    mesh = new THREE.Mesh( geometry, material );
    mesh.rotation.set( model.rotationX, model.rotationY, model.rotationZ );
    mesh.scale.set( model.scale, model.scale, model.scale );
    var originalBSP = new ThreeBSP( mesh );
    var xSectionBSP = new ThreeBSP( xSection );
    var subtractedBSP = originalBSP.subtract( xSectionBSP );
    var result = subtractedBSP.toMesh( material );
    result.geometry.computeVertexNormals();
    scene.add( result );
};

我加载 stl 模型,然后在加载器的回调函数中,我尝试减去网格。 我得到的错误是在 ThreeCSG 包装器文件的第 34 行,说

ThreeCSG.js:34 未捕获类型错误:无法读取未定义的属性"长度"

我猜这是因为(a)我没有使用ThreeCSG,(b)我需要在代码中的其他地方做减法,或者(c)不支持STL格式模型。

无论如何,我完全被难住了,并希望在使用三.js方面更有经验的人的建议。

它看起来是正确的。如果 STL 几何图形为空或忘记初始化 xSection,则可能会发生此错误。

相关内容

  • 没有找到相关文章

最新更新