SCENE에 있는 MESH의 크기측정하기
2016년 07월 19일
mesh size
Scene에 있는 Mesh의 크기를 알고 싶으면 THREE.Box3를 사용해야 한다.
일단 크기 x : 10, y : 30, z : 20인 육면체를 생성한 뒤 scene에 더한다.
var geometry = new THREE.BoxGeometry(10, 30, 20);
var material = new THREE.MeshLambertMaterial({ color: 0x4eb8fb });
var cube = new THREE.Mesh(geometry, material);
scene.add(cube);
THREE.Box3를 생성한 뒤 setFromObject 함수의 매개변수로 육면체 mesh를 넘겨준다. size함수를 실행하면 { x : 10, y : 30, z : 20 } 의 object를 return 받을 수 있다.
var box = new THREE.Box3().setFromObject(cube);
var size = box.size();
console.log("x:" + size.x + "ny:" + size.y + "nz:" + size.z);
‘크기 측정하기’ 버튼을 클릭하면 mesh의 크기를 알 수 있다.
예상한 대로라면 x : 10, y : 30, z : 20의 결과가 나와야 하지만 클릭할 때 마다 크기가 다른 것을 알 수 있다.
처음 생성할 때의 mesh의 크기가 아니라 현재의 mesh를 박스를 씌운 다음에 그 박스의 크기를 측정하는 것이라서 구가 아닌 이상은 mesh가 회전할 때 마다 다른 크기가 된다는 것을 알 수 있다.
( Three.js v79 사용 )