我试着用Three.js的STLLoader函数加载心脏模型的横截面。我目前正尝试为csg.js库使用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未定义TypeError:无法读取未定义属性的“长度”
我猜想这是因为(a)我没有预先使用ThreeCSG,(b)我需要在代码中的其他地方执行减法,或者(c)不支持STL格式模型。
在任何情况下,我都很困惑,我会很感激在使用three.js方面更有经验的人的建议。
发布于 2016-01-21 05:08:24
看上去是对的。如果STL几何体为空或忘记初始化xSection,则可能发生此错误。
https://stackoverflow.com/questions/34911705
复制相似问题