2017-01-10 2 views
1

私は3Dウィジェットを作成してメッシュを回転、拡大縮小、平行移動するプロジェクトに取り組んでいます。 現在、親メッシュの拡大縮小に使用しているコーンの配置に問題があります。 これは私のコードです:メッシュの親に対する位置付け

function createScaleWidget(mesh, constScale){ 
    var bbox = new THREE.Box3().setFromObject(mesh); 
    var material = new THREE.MeshBasicMaterial({ 
     color: 0x0000ff 
    }); 
    var coneGeom = new THREE.CylinderGeometry(0, constScale, 10, 50, 20, false); 
    var cone = new THREE.Mesh(coneGeom,material); 
    cone.position.y = bbox.max.y/2; //assuming all the objects are laid on the ground 
    cone.position.z = bbox.max.z+10; 
    cone.position.x = bbox.max.x+10; 
    mesh.add(cone); 
} 

は、私はウィジェットを作成していメッシュであるメッシュ、 コーンはウィジェットです。 私は円錐の中央に(yに関して) を持っていて、バウンディングボックスに対して角度をつけたいと思っています(フェースバウンディングボックスの右にそれを置くのが理想ですカメラ)。 は、おそらく私の問題は、コーンの子メッシュ自体をBBOXにもの位置に依存するメッシュんだけではなく、したがって、最終的な位置であるという事実にあります。

答えて

1

私はあなたがそのような何かしたいと思います:あなたは右のあなたは、この場合には、比較的親位置にコーンを見つけるために持っている

enter image description here

を - メッシュ:

function createScaleWidget(mesh, constScale){ 
var bbox = new THREE.Box3().setFromObject(mesh); 
var material = new THREE.MeshBasicMaterial({ 
    color: 0x0000ff 
}); 
var coneGeom = new THREE.CylinderGeometry(0, constScale, 10, 50, 20, false); 
var cone = new THREE.Mesh(coneGeom,material); 
cone.position.y = bbox.size().y/2; 
mesh.add(cone); 
} 

をこれは私のために働いたが、私は何か似たようなことをしたコーンはフェイスの1つの隣に配置する必要があります。別の顔を試してみてください:

代わりに試してみてください。

+1

ありがとうございました。 bboxesがsize()関数を持っているのを知らなかった –

+0

あなたはウェルカムです!あなたが好きなら私の質問を承認することができます – Tlatis

+1

うん、申し訳ありませんが、私はちょっとstackoverflowに迷惑です:D –