使用js获取3d模型的尺寸(大小)

时间:2018-08-01 13:20:07

标签: javascript three.js 3d augmented-reality

我实际上使用three.js处理AR项目,并处理了一些3D模型,但是模型的尺寸存在一些问题。因为我希望它们都具有相同的尺寸,所以我需要为所有模型设置相同的尺寸。我首先尝试通过使用boundingbox和boundingsphere解决此问题,但是它不起作用。

那么我如何获得尺寸以及如何设置尺寸?

2 个答案:

答案 0 :(得分:2)

var size = new THREE.Box3().setFromObject( yourObject ).getSize(new THREE.Vector3())

答案 1 :(得分:1)

我还需要别的东西,因为炭疽热的代码很有趣,但是有一些局限性。例如:

andy.scale.set(0.011, 0.011, 0.011);
                                andy.rotation.set(0, 0, 0);
                                andy.position.set(0,0,0);
                                var size = new THREE.Box3().setFromObject(andy).getSize(new THREE.Vector3())
                                console.log(size);

                                function moy(vect){
                                    return ((vect.x+vect.y+vect.z)/3);;
                                }

                                console.log(moy(size));

                                andy.scale.set(0.030, 0.030, 0.030);
                                console.log(moy(size));

如果我想更改“大小”的值,该怎么办?

PS:安迪是我的3D模型

我解决了,我创建了自己的box3:

                        andy.scale.set(0.011, 0.011, 0.011);
                        andy.rotation.set(0, 0, 0);
                        andy.position.set(0,0,0);
                        var box3d = new THREE.Box3();
                        var size = box3d.setFromObject(andy).getSize(new THREE.Vector3())
                        console.log(size);

                        function moy(vect){
                            return ((vect.x+vect.y+vect.z)/3);;
                        }

                        console.log(moy(size));

                        andy.scale.set(0.030, 0.030, 0.030);
                        box3d.setFromObject(andy).getSize(size);
                        console.log(moy(size));