2016-12-02 9 views
0

恐らく疑わしい質問ですが、ここに行きます。 Three.jsジオメトリがthree.js Cube Geometry - パラメータを更新するには?

...私はこのような、これらのパラメータを更新しようとしていますそれらに関連付けられて「パラメータ」feildsを持って、ここではボックスのジオメトリを参照してください...

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

答えて

0

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

よく、よくできて:) – prisoner849

0

パラメータを変更した後にもう一度renderする必要があります。

+0

彼はすでにアニメーションのためにcountinuouslyを再描画しています... – Giovazz89

1

parameters.depthは、ジオメトリ作成時にのみ使用されます。それを変更しても効果はありません。 read onlyと考えることができます。

https://threejs.org/docs/?q=Box#Reference/Geometries/BoxGeometryの例を使用して、右側のGUIを使用して、目的の達成方法を確認してください。

関連する問題