Respuesta
Supongo que lo que quieres decir es que quieres que un objeto gire alrededor de un punto específico dentro de su geometría. Por ejemplo, cylinderGeometry
gira alrededor de centro. Supongamos que desea rotar alrededor de su final.
Lo que debe hacer es traducir la geometría del cilindro inmediatamente después de haberla creado, de modo que el punto deseado dentro de la geometría esté ahora en el origen.
geometry.applyMatrix(new THREE.Matrix4().makeTranslation(0, cylinderHeight/2, 0));
EDIT: Ahora puede hacer esto, en su lugar:
geometry.translate(0, cylinderHeight/2, 0); // three.js r.72
Ahora, cuando se gira el cilindro, y pasará a girar alrededor de su extremo, en lugar de su medio.
El extremo que gira alrededor también estará ubicado en la posición que ha configurado para la malla del cilindro.
Obviamente, puede hacer esto con cualquier geometría, no solo con cilindros.
Para dar un ejemplo de código de la respuesta anterior de 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);
ahora las obras de rotación alrededor del origen del cilindro:
cylinder.rotation.x = 0.5*Math.PI;
Espero que ayude.
Gracias, ¡me has ayudado mucho! – bernhardrusch
- 1. ¿Cómo obtengo RMagick para envolver imágenes alrededor de un cilindro?
- 2. Cómo rotar un Three.js Vector3 alrededor de un eje?
- 3. Gire un punto alrededor de un punto con OpenCV
- 4. cómo rotar alrededor de un punto especificado en fabric.js?
- 5. Girar el rectángulo alrededor de un punto
- 6. ¿Cómo rotar un vértice alrededor de un cierto punto?
- 7. Girando alrededor de un punto arbitrario: HTML5 Canvas
- 8. OpenGL girar alrededor de un punto
- 9. Cómo envolver la imagen alrededor del cilindro en Silverlight
- 10. Rotación de un objeto alrededor de un vector central punto
- 11. dibujando un círculo de radio R alrededor de un punto
- 12. ¿Cómo rotar el objeto alrededor de un punto usando cuaterniones?
- 13. iPhone: escalar UIView sobre un punto específico
- 14. Cómo calcular un radio alrededor de un punto en un Android MapView?
- 15. Cómo esquilar un cubo en Three.js
- 16. Leer desde un punto específico en un archivo C++
- 17. Coordenadas GPS: 1km cuadrados alrededor de un punto
- 18. Actionscript: ¿Cómo giro un campo de texto?
- 19. Cómo rotar un objeto hacia adelante y hacia atrás en un punto específico?
- 20. Trigonometría adecuada para girar un punto alrededor del origen
- 21. CGAffineTransformMakeRotation alrededor del punto externo
- 22. ¿Cómo giro un div con Raphael.js?
- 23. ¿Cómo giro un ggplot al paisaje?
- 24. Cómo rotar un lienzo en un punto específico usando android.graphics.Camera.rotateX (ángulo)
- 25. Crear un cilindro con un eje centrado diferente
- 26. Transformación afín de un paso para la rotación alrededor de un punto?
- 27. ¿Cómo obtener la posición absoluta de un vértice en three.js?
- 28. Centro de la geometría del movimiento Three.js
- 29. Detener CABasicAnimation en el punto específico
- 30. ¿Cómo giro una imagen?
Gracias, funciona. pero en el caso de la geometría del tubo, ¿cómo coloco el ayudante del eje en el borde del tubo o, en otras palabras, el ayudante del eje en cada punto del segmento para que el usuario pueda girar o girar el tubo? Por favor, eche un vistazo a mi otra pregunta en [enlace] (http://stackoverflow.com/questions/12776933/three-js-rotate-tube-geometry-from-segment-point-and-show-different-values) - @ WestLangley – Valay
¿Puedes ayudar a hacer girar la geometría del tubo de esa manera? Quiero girar una parte particular de la geometría del tubo. Cuando giro, todo el tubo gira. – Valay
Necesitas hacer una nueva publicación. – WestLangley