Je crée un cube dans three.js et si je le tourne d'abord puis translateX, la position du cube n'est pas (10,0,0)three.js objet translate and rotate basé sur l'objet système de coordonnées auto ou système de coordonnées monde
geometry = new THREE.BoxGeometry(3, 3, 3);
material = new THREE.MeshBasicMaterial({ color: 0xff0000});
mesh = new THREE.Mesh(geometry, material);
mesh.position.set(0, 0 , 0);
mesh.rotation.y = Math.PI/4;
mesh.translateX(10);
scene.add(mesh);
mais si i translateX le premier puis tourner, la position est (10,0,0). Donc, je remarque que l'objet traduit en fonction du système de coordonnées auto-référencé. Lorsque je tourne d'abord, le système de coordonnées auto de l'objet est enclenché. Mais si je le fais d'abord pivoter puis translateX, la position du cube est (5.3, 0, -5.3), et faites-la tourner maintenant, cela ressemble à une rotation non basée sur un système auto-coordonné.
Alors je veux savoir est l'objet traduire et faites pivoter basé sur l'auto système de coordonnées ou système de coordonnées.
merci @ Rabbid76, aidez beaucoup! donc la rotation de l'objet et la traduction basée sur le système de coordonnées auto? – chen
@chen Si vous concaténez des matrices, la transformation est toujours basée sur la transformation précédente. C'est un processus incrémental – Rabbid76
merci beaucoup, je l'ai eu – chen