Odpowiedz
Zakładam, że masz na myśli to, że chcesz obrócić obiekt wokół określonego punktu w jego geometrii.
Na przykład cylinderGeometry
obraca się wokół tego centrum. Załóżmy, że chcesz go obrócić wokół jego koniec.
Co trzeba zrobić, to przetłumaczyć geometrię cylindra zaraz po jej utworzeniu, aby żądany punkt w geometrii znajdował się teraz w punkcie początkowym.
geometry.applyMatrix(new THREE.Matrix4().makeTranslation(0, cylinderHeight/2, 0));
EDIT: Teraz można to zrobić, zamiast:
geometry.translate(0, cylinderHeight/2, 0); // three.js r.72
Teraz, kiedy obrócić cylinder, będzie teraz obracać wokół jego końca, a nie jego środku.
Koniec, w którym się obraca, będzie również znajdować się w położeniu ustawionym dla siatki cylindra.
Oczywiście można to zrobić za pomocą dowolnej geometrii, a nie tylko cylindrów.
Aby dać przykład kodu do powyższego odpowiedź na WestLangley:
// CYLINDER
var cyl_material = new THREE.MeshBasicMaterial({ color: 0xff0000 });
var cyl_width = 1;
var cyl_height = 5;
// THREE.CylinderGeometry(bottomRadius, topRadius, height, segmentsRadius, segmentsHeight, openEnded)
var cylGeometry = new THREE.CylinderGeometry(cyl_width, cyl_width, cyl_height, 20, 1, false);
// translate the cylinder geometry so that the desired point within the geometry is now at the origin
cylGeometry.applyMatrix(new THREE.Matrix4().makeTranslation(0, cyl_height/2, 0));
var cylinder = new THREE.Mesh(cylGeometry, cyl_material);
scene.add(cylinder);
obecnie prace obrót wokół pochodzenia skokowej:
cylinder.rotation.x = 0.5*Math.PI;
nadzieję, że pomoże.
Dziękuję - bardzo mi pomogłeś! – bernhardrusch
Dzięki, to działa. ale w przypadku geometrii rur, w jaki sposób umieścić pomocnika osiowego na krawędzi rury lub, innymi słowy, pomocnika osiowego w każdym punkcie segmentu, aby użytkownik mógł obracać lub obracać rurką? Proszę spojrzeć na moje inne pytanie na [link] (http://stackoverflow.com/questions/12776933/three-js-rotate-tube-geometry-z-segment-point-and-show-different-values) - @WestLangley – Valay
Czy możesz w ten sposób wpasować geometrię rur? Chcę obrócić konkretną część geometrii rury. Kiedy się obracam, cała rura jest obracana. – Valay
Musisz utworzyć nowy post. – WestLangley