如何在Three.js中获得立方体的高度

如何在Three.js中获得立方体的高度,three.js,Three.js,我有以下代码 // World var geometry = new THREE.BoxGeometry( 100, 200, 100 ); var material = new THREE.MeshLambertMaterial( { color: 'green' } ); var cube = new THREE.Mesh( geometry, material ); cube.position.y = (cube.height / 2); // this doesn't work scen

我有以下代码

// World
var geometry = new THREE.BoxGeometry( 100, 200, 100 );
var material = new THREE.MeshLambertMaterial( { color: 'green' } );
var cube = new THREE.Mesh( geometry, material );
cube.position.y = (cube.height / 2); // this doesn't work
scene.add( cube );

获取立方体高度的正确方法是什么?我知道高度=100,但我想了解如何使用程序代码获得高度。

您创建的长方体几何体对象有3个属性(高度、宽度和深度)。这三个属性被读取为x、y、z。因此,如果要更改高度,则必须更改Y轴

geometry.scale.y = 200;

你必须从几何学中计算出来

//you need to get correct verts 0 and 4 are for example
var height=cube.geometry.vertices[4].y-cube.geometry.vertices[0].y;

对象的边界框将给出其精确的尺寸:

var cube_bbox = new THREE.Box3();
cube_bbox.setFromObject( cube );
现在有了向量
cube\u bbox.max
cube\u bbox.min

cube_height = cube_bbox.max.y - cube_bbox.min.y;

如果使用
THREE.BoxGeometry
创建立方体网格,则可以通过访问几何体的
参数
属性来获取立方体的高度:

height = mesh.geometry.parameters.height;
如果已将网格特性
scale.y
的默认值更改为1,则必须将上述数量乘以
scale.y

3.js r.71