Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何克隆three.js几何体?_Javascript_Three.js - Fatal编程技术网

Javascript 如何克隆three.js几何体?

Javascript 如何克隆three.js几何体?,javascript,three.js,Javascript,Three.js,我试图根据表单传递的比例值计算对象体积。 我希望每次都从开始几何体计算比例,所以我的问题是,当我更新几何体时,在下一个值更改时,比例将在更新的几何体上完成。 我想克隆几何体并仅在克隆的几何体上应用比例是可以的,因此每次更改比例值时,我都可以从原始几何体开始,但我不知道如何执行 这是我的密码,有什么建议吗 $(document).on('change', '.scaleBox', function (e) { if (idfile == $(this).attr('idgl')) {

我试图根据表单传递的比例值计算对象体积。
我希望每次都从开始几何体计算比例,所以我的问题是,当我更新几何体时,在下一个值更改时,比例将在更新的几何体上完成。
我想克隆几何体并仅在克隆的几何体上应用比例是可以的,因此每次更改比例值时,我都可以从原始几何体开始,但我不知道如何执行

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

$(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));
    }
});
$(document).on('change','.scaleBox',函数(e){
if(idfile=$(this.attr('idgl')){
var val=$(this.val();

如果(val我通过反转比例因子并重新更新几何体找到了解决方案。 希望这能帮助其他人
这就是结果:

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


    }
});
$(document).on('change','.scaleBox',函数(e){
if(idfile=$(this.attr('idgl')){
var val=$(this.val();

如果(val我通过反转比例因子并重新更新几何体找到了解决方案。 希望这能帮助其他人
这就是结果:

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


    }
});
$(document).on('change','.scaleBox',函数(e){
if(idfile=$(this.attr('idgl')){
var val=$(this.val();

如果@mrapsogos的可能重复,我尝试使用对象克隆,但使用此方法时,每个对象的几何体都相同@mrapsogos的可能重复,我尝试使用对象克隆,但使用此方法时,每个对象的几何体都相同