302chanwoo 블로그

Next.js 15로 만든 마크다운 블로그

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 사용 )