• Empleos
  • Sobre nosotros
  • Empleos
    • Inicio
    • Empleos
    • Cursos y retos
  • Empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

211
Vistas
JavaScript: encuentre la dirección de giro desde dos ángulos

Tengo dos ángulos normalizados (entre 0 y 360 grados) y quiero encontrar la dirección de giro más corta del punto a al punto b . (en sentido horario o antihorario). a o b pueden estar en cualquier parte del círculo, por lo que la función debería funcionar en ambos sentidos: si a es menor y si a es mayor que b .

Escribí la siguiente función, que funciona bien excepto cuando la distancia más corta cruza la marca de 0 grados:

 function clockwise(a, b){ return a < b; }

La función devuelve verdadero si es en el sentido de las agujas del reloj y falso si la dirección es en el sentido contrario a las agujas del reloj.

¿Cómo puedo hacer que esto funcione para distancias que cruzan el ángulo de 0 grados? Estoy buscando una implementación específicamente en JavaScript, ya que no pude traducir ninguna de las explicaciones matemáticas que encontré. ¡Gracias por adelantado!

ingrese la descripción de la imagen aquí

over 3 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Con respecto al punto a,

  • Es en el sentido de las agujas del reloj, si b está presente está en los próximos 180
  • en sentido contrario a las agujas del reloj
 function clockwise(a, b){ let theta1 = ba; return theta1 >= 0 && theta1 <= 180; // return true if clockwise }
over 3 years ago · Juan Pablo Isaza Denunciar

0

Probablemente haya una solución más elegante, pero creo que esto da los resultados esperados.
(si a=60, b=230 la diferencia es 170 y en el sentido de clockwise=true es correcto...?!)

 function clockwise(a, b) { let clockwise, diff if (b > a) { diff = b - a clockwise = diff >= 0 && diff <= 180 } else { diff = a - b clockwise = diff >= 180 } return clockwise } console.log(clockwise(60,230)) // true console.log(clockwise(220,150)) // false console.log(clockwise(40,300)) // false console.log(clockwise(120,214)) // true

over 3 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda