2

単純な立方体と、その幅、高さ、深さを指定するいくつかの変数があるとしましょう。

w/h/d が変更されたときに THREE メッシュを更新するにはどうすればよいですか? (私はチェンジリスナーなどの他のすべてを持っています)。頂点を直接更新しますか? それとも、すべてを再描画する方が簡単ですか?

4

1 に答える 1

5

最も簡単なのは、1 単位の寸法 (1x1x1) でキューブを作成することだと思います。次に、スケーリングして寸法を設定します。

mesh.scale.x = width;
mesh.scale.y = height;
mesh.scale.z = depth;

メッシュがスケールをサポートしているかどうかは実際にはわかりません。そうでない場合は、Object3D でラップできます

var obj = new THREE.Object3D();
    obj.add(mesh);
obj.scale.x = width;
obj.scale.y = height;
obj.scale.z = depth;

頂点を直接変更することを妨げるものは何もありません。geometry.dynamic=true;その場合は指定してから指定する必要があると思いますgeometry.verticesNeedUpdate=true;

于 2013-01-25T17:15:07.883 に答える