Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

262
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda