Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

266
Vistas
¿Cómo puedo rotar un punto arbitrario alrededor de un origen arbitrario en Javascript?

Usando esta pregunta: algoritmo de rotación de puntos 3D, pude asimilar una función de rotación básica para mi biblioteca de vectores arbitraria en javascript.

El problema es que la pregunta anterior no explica cómo girar alrededor de cualquier punto (como una órbita)

Esta biblioteca de vectores amplía el tipo de objeto Array (originalmente lo bifurqué de un proyecto antiguo y luego lo adapté para mis propios proyectos) , así que piense en cada vector como una matriz con métodos y captadores adicionales (puede encontrar el código fuente completo aquí )

Este es el método que uso para rotar el vector actual con un Vector conectado como ángulo (para que cada eje se pueda controlar por separado)

Toma los valores de coseno y seno requeridos para los tres ejes (cabeceo, balanceo, guiñada) y luego los almacena como tres vectores en una matriz.

Finalmente, multiplica cada vector en cada coordenada en consecuencia.

 rotate(angle) { let cos = (angle.copy).map(val => Math.cos(angle)); let sin = (angle.copy).map(val => Math.sin(angle)); let other = [new Vector([ cos.z * cos.y, cos.z * sin.y * sin.x - sin.z * cos.x, cos.z * sin.y * cos.x + sin.z * sin.x ]), new Vector([ sin.z * cos.y, sin.z * sin.y * sin.x + cos.z * cos.x, sin.z * sin.y * cos.x - cos.z * sin.x ]), new Vector([ -sin.y, cos.y * sin.x, cos.y * cos.x ])]; let stored = point.copy; this.map((val, i) => (other[i].mul(stored)).sum); }

Mi pregunta principal es, ¿cómo puedo adaptar esta herramienta para permitirme rotar alrededor de cualquier punto en el espacio 3D?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Si tienes una matriz de rotación R y quieres rotar un vector v alrededor de un punto a se debe adicionar R con a y multiplicarlo por el produrcto de v por a, entonces la fórmula para el resultado es

 a + R * (va)

Esto aplica igual si la multiplicación matriz-vector es desde la izquierda.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda