3

頂点を定義し、位置を設定せずに CustomGeometry をシーンに追加する場合、どうすれば独自の中心点を中心に回転させることができますか?

フィドル: http://jsfiddle.net/tezcancirakoglu/Ldt7z

サンプル コードでは、オブジェクトはシーンの X 軸を中心に回転しています。中心点を中心に回転させる必要があります。

ヒント: 赤い立方体メッシュは、回転しているオブジェクトの最初の中心点です。赤い立方体のx軸を中心に回転させる必要があります...たくさん試しましたが、とにかく失敗しました。

4

2 に答える 2

3

1 つの解決策は、メッシュ ジオメトリを変換し、メッシュの位置を変更して補正することです。次のようにします。

var offset = objMesh.centroid.clone();
objMesh.geometry.applyMatrix(new THREE.Matrix4().makeTranslation( -offset.x, -offset.y, -offset.z ) );
objMesh.position.copy( objMesh.centroid );

更新されたフィドル: http://jsfiddle.net/Ldt7z/165/

PS フィドルを実行する前に保存する必要はありません。これほど多くのバージョンを用意する理由はありません。

three.js r.55

于 2013-01-22T15:51:45.860 に答える
1

バウンディングボックスの中心を使用できます。これは基本的に頂点の「平均」になりますが、赤い立方体に落ちるとは限りません。

于 2013-01-19T20:19:41.423 に答える