【问题标题】:how to clone three.js geometry?如何克隆three.js几何?
【发布时间】:2016-01-04 08:04:24
【问题描述】:

我正在尝试根据从表单传递的比例值来计算对象体积。
我想每次都从起始几何体计算比例,所以我的问题是当我更新我的几何体时,在下一个值更改时,比例是在更新的几何体上完成的。
我在想克隆几何图形并仅在克隆的几何图形上应用比例是可以的,所以每次我更改比例值时,我都可以从原始几何图形开始,但我不知道该怎么做。

这是我的代码,有什么建议吗?

$(document).on('change', '.scaleBox', function (e) {
    if (idfile == $(this).attr('idgl')) {
        var val = $(this).val();
        if (val <= 0)
            val = 0.1;

        myObj.scale.set(val, val, val);            
        myObj.updateMatrix();
        myObj.geometry.applyMatrix(myObj.matrix);
        myObj.matrix.identity();
        myObj.geometry.verticesNeedUpdate = true;

        var volume = myVolume(myObj.geometry);
        $("#specs-" + idfile).find('.volumeVal').html(myRound(volume, 3));     

        var box = new THREE.Box3().setFromObject(myObj);
        xyzSizes = box.size();
        $("#specs-" + idfile).find('.sizesVal').html('x: ' + myRound(xyzSizes.x, 3) + ' y: ' + myRound(xyzSizes.y, 3) + ' z: ' + myRound(xyzSizes.z, 3));
    }
});

【问题讨论】:

标签: javascript three.js


【解决方案1】:

我通过反转比例因子并重新更新几何图形找到了解决方案。 希望这可以帮助别人
结果如下:

 $(document).on('change', '.scaleBox', function (e) {
    if (idfile == $(this).attr('idgl')) {
        var val = $(this).val();
        if (val <= 0)
            val = 0.1;

        myObj.scale.set(val, val, val);
        var box = new THREE.Box3().setFromObject(myObj);
        xyzSizes = box.size();
        $("#specs-" + idfile).find('.sizesVal').html('x: ' + myRound(xyzSizes.x, 3) + ' y: ' + myRound(xyzSizes.y, 3) + ' z: ' + myRound(xyzSizes.z, 3));
        myObj.scale.set(val,val,val);
        myObj.updateMatrix();
        myObj.geometry.applyMatrix(myObj.matrix);


        var volume = myVolume(myObj.geometry);
        $("#specs-" + idfile).find('.volumeVal').html(myRound(volume, 3));
        myObj.scale.set(1/val,1/val,1/val);
        myObj.updateMatrix();
        myObj.geometry.applyMatrix(myObj.matrix);


    }
});

【讨论】:

    猜你喜欢
    • 2012-08-08
    • 1970-01-01
    • 2018-11-20
    • 1970-01-01
    • 1970-01-01
    • 2010-10-17
    • 2012-05-27
    相关资源
    最近更新 更多