Three.js:缩放使用Blender创建的对象

时间:2014-01-05 00:35:30

标签: javascript three.js blender

我有缩放对象的问题。我用搅拌机创建了一个表的模型。现在我将每个子对象(4个桌腿和1个桌面)添加到场景中:

var loader = new THREE.OBJMTLLoader();
loader.load( 'obj/self/testcube5.obj', 'obj/self/testcube5.mtl', function ( object ) {  
    var i = 0;
    while(object.children[0] != undefined)
    {
        var cc = object.children[0];
        scene.add(cc);
    }
});

目标是在重新定位其他部分时缩放表格的各个部分。例如。让腿更长,抬起桌面。

缩放桌腿:

function keyPressed (event) {
    if (event.keyCode === 87) 
    { // W
        for(var i=0; i<scene.children.length; i++)
        {
            if(scene.children[i].name.indexOf("tischbein") > -1)
            {
                scene.children[i].scale.set(x, y, z+=0.01);     
            }
        } 
    } 
    else if (event.keyCode === 83) 
    { // S
        for(var i=0; i<scene.children.length; i++)
        {
            if(scene.children[i].name.indexOf("tischbein") > -1)
            {
                scene.children[i].scale.set(x, y, z-=0.01);     
            }
        }
    }
}

问题一:
- 如果我以这种方式缩放腿部,桌面也会缩放(和翻译)。

问题二:
- 如果我试图只缩放一条腿......

if(scene.children[i].name.indexOf("tischbein1") > -1)
{
    // scale table leg "tischbein1" ...
}

......没有腿缩放,但桌面抬起。

Example page(使用鼠标)

这是一个我无法处理的非常奇怪的行为,我真的不明白。 我需要更改什么才能访问和操作每个子对象而不操纵场景中的任何其他对象?

0 个答案:

没有答案