2016-08-20 1 views
0

Récemment j'ai commencé à apprendre troisjs et sur la base de threejs.org/editor essayé d'écrire une fonction qui met le modèle sélectionné au centre de la scène, et il y avait un problème :Threejs comment obtenir le centre du modèle après rotation

centre du modèle sera calculé mal si le modèle a été mis en rotation, donc je ne peux pas modèle dans le bon sens

code de ma fonction aligncenter

editor.selected.geometry.center(); 
var box = new THREE.Box3().setFromObject(editor.selected);  
var newPosition = new THREE.Vector3(0, box.size().y/2, 0);  
editor.execute(new SetPositionCommand(editor.selected, newPosition)); 

voici comment cela fonctionne - http://lexsandbox.netne.net/editor/ - (onglet Alignement - AlignCenter)

comment il est si le modèle a été tourné - http://joxi.ru/EA41k31HqVQ0rb (. Angles aléatoires, box.size() y = 105,89974660644481, Position.Y = 52,95) et en raison de la position du centre mal, il fonctionne de mauvaise façon

comment i peut résoudre ce problème?

PS: sory pour mon anglais, je suis étudiant étranger; (

Répondre

0

vous pouvez spécifier le paramètre de rotation pour l'axe séparément, cube.rotate.x + = 0,1; cube.rotate.y + = 0,1; pour Rotation.Ici cube signifie la géométrie ou la maille ou bien essayer de calculer la boîte englobante et tourner autour de son centre