three.js Cube Geometry - 如何更新参数?

问题描述:

可能是愚蠢的问题,但在这里。 three.js所几何形状与他们相关联的“参数”精密组件,在这里看到的盒体几何形状...three.js Cube Geometry - 如何更新参数?

box Geometry parameters

我试图更新这些参数是这样的...

var nodeSize = 10; 
var geometry = new THREE.CubeGeometry(nodeSize, nodeSize, nodeSize); 
mesh = new THREE.Mesh(geometry, new THREE.MeshNormalMaterial({side:THREE.DoubleSide})); 

scene.add(mesh); 
mesh.geometry.parameters.depth=20; 

但当然,几何保持不变。是否有通过编辑这些参数来更新几何的方法?

小提琴这里https://jsfiddle.net/kn3owveg/2/

任何帮助表示赞赏!

+0

什么是你想改变'depth'领域呢?该信息可能会有帮助 – Giovazz89

+0

感谢您的帮助@ Giovazz89,我已经从收到的答案小提琴https://jsfiddle.net/henryJack/kn3owveg/6/ – henryJack

Gaitat是完全正确的,您不能通过更改parameters来更改几何。

而且可以有另一种解决方案。随着您的立方体的缩放。

function setSize(myMesh, xSize, ySize, zSize){ 
    scaleFactorX = xSize/myMesh.geometry.parameters.width; 
    scaleFactorY = ySize/myMesh.geometry.parameters.height; 
    scaleFactorZ = zSize/myMesh.geometry.parameters.depth; 
    myMesh.scale.set(scaleFactorX, scaleFactorY, scaleFactorZ); 
} 
... 
setSize(mesh, 10, 10, 20); 

jsfiddle例如

+0

感谢您的帮助。我已经从你的回答https://jsfiddle.net/henryJack/kn3owveg/6/ – henryJack

+0

看起来不错,做得好:) – *er849

一旦更改参数,您需要再次render

+0

他已经重新渲染数字动画... ... – Giovazz89

parameters.depth仅用于几何构造时间。修改它时不起作用。你可以把它想象成read only

使用https://threejs.org/docs/?q=Box#Reference/Geometries/BoxGeometry的例子和右边的gui来看看如何实现你想要的。