1 votos

¿cómo puedo convertir el grado de un triángulo en vectores x e y?

Estoy programando un juego para practicar y estoy tratando de diseñar un algoritmo que encuentre los vectores x e y que el "bot" deberá seguir para alcanzar las coordenadas x e y exactas del jugador. Ya he utilizado el teorema de Pitágoras para encontrar la distancia entre las coordenadas del bot y las del jugador. Así que a partir de aquí podría encontrar fácilmente todos los grados del triángulo, pero no tengo ni idea de cómo convertir eso en vectores x e y.

Como ejemplo, si configuro el bot para que se mueva en el vector x = -5, entonces se moverá -5 píxeles (a la izquierda) a través de la pantalla cada vez que el monitor se actualice.

Conozco todas las posiciones x e y de las entidades en todo momento.

Entonces, ¿hay alguna forma de tomar el grado de una esquina del triángulo y convertirlo en vectores sobre los que el bot pueda moverse?

Gracias.

0voto

Yo codifiqué algo así una vez, creo que no hay manera de hacer eso bot mover con un ángulo, lo que hice fue comprobar la diferencia de posición x e y entre el bot y el jugador ... y luego en cada vez que el monitor se actualiza el bot se moverá por cierta cantidad de píxeles a la izquierda / derecha o arriba / abajo tratando de llegar a la posición del jugador ... el problema era que a veces el bot sólo se acercan ( sqrt (2) ) al jugador, pero no llega a la misma posición.

0voto

David K Puntos 19172

No necesitas ángulos.

Si el robot está en $(x_r, y_r)$ y el jugador está en $(x_p, y_p),$ un vector que va de la posición del robot a la posición del jugador es $(x_{rp}, y_{rp})$ donde \begin{align} x_{rp} &= x_p - x_r, \\ y_{rp} &= y_p - y_r. \\ \end{align}

Pero esto hace que el robot vaya a la posición del jugador en un solo paso. Probablemente querrás hacer que el robot viaje más lento que eso, así que multiplica ambas coordenadas de tu vector por algún número pequeño; por ejemplo, si multiplicas por $0.05$ (que equivale a $1/20$ ) entonces tomará $20$ pasos para que el robot llegue al jugador.

0voto

fleablood Puntos 5913

"Entonces, ¿hay alguna forma de tomar el grado de una esquina del triángulo y convertirlo en vectores sobre los que el bot pueda moverse? "

Ángulo = $\theta$ . Distancia total = $d$

Entonces Vector = $(x,y) = (d*\sin \theta, d*\cos \theta)$ .

¿Es eso lo que preguntabas?

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X