我有以下代码;
// 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,但我想了解如何使用程序代码获得高度。
答案 0 :(得分:7)
如果使用THREE.BoxGeometry
创建立方体网格,则可以通过访问几何体的parameters
属性来获取立方体的高度:
height = mesh.geometry.parameters.height;
如果您已将网格属性scale.y
从其默认值1更改为,那么您必须将上述数量乘以scale.y
。
three.js r.71
答案 1 :(得分:3)
对象的边界框将给出准确的尺寸:
var cube_bbox = new THREE.Box3();
cube_bbox.setFromObject( cube );
现在你有了矢量cube_bbox.max
和cube_bbox.min
所以:
cube_height = cube_bbox.max.y - cube_bbox.min.y;
答案 2 :(得分:0)
您创建的框Geometry对象有3个属性(高度,宽度和深度)。这3个属性读作x,y,z。因此,如果要更改高度,则必须更改Y轴。
geometry.scale.y = 200;
答案 3 :(得分:0)
您必须从几何图形计算它。
//you need to get correct verts 0 and 4 are for example
var height=cube.geometry.vertices[4].y-cube.geometry.vertices[0].y;