Hola buenas. Tengo una consulta, ¿cómo puedo invertir la fórmula: X = Xo + cos(ángulo) * radio para calcular el ángulo teniendo dos puntos?

si te refieres a saber hacia qué dirección mira un punto cuando está mirando a otro, prueba point_direction(x1,y1,x2,y2)

sino, almenos especifica qué es X y qué es Xo ángulo de quién y radio de qué?, pues la fórmula se traduciría exactamente igual, con la misma sintaxis.
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

Hola FernandoNavarro

Al ángulo súmale 180 grados y ya inviertes la dirección.

En radianos usando la función "cos" sería multiplicar por la constante "pi".
[gml]X = Xo + cos(angulo+pi) * radio[/gml]

A partir de GMS, se creó la función "dcos" para colocar los ángulos en grados.
[gml]X = Xo + dcos(angulo+180) * radio[/gml]

Saludos

#3 Marzo 28, 2020, 05:27:47 AM Ultima modificación: Marzo 28, 2020, 06:06:13 AM por FernandoNavarro
Hola, gracias a ambos. La fórmula que puse es una que había usado una vez pasada para que un objeto orbitara alrededor de otro.

Para ponerlos en contexto, estaba jugando Warcraft III y se me vino a la mente cómo hacer una torre de vigilancia. Entonces me puse a calcular ángulos en función de la posición del objeto al que la torre deba lanzar el proyectil. Hice algo así, luego lo optimizo:

Tengo tres variables que son de referencia para un triángulo.

Ax = x;
Ay = y;
Cx = objEnemy.x;
Cy = objEnemy.y;
AB = abs(Ax - Cx);
BC = abs(Ay - Cy);
Hyp = sqrt(power(AB, 2) + power(BC, 2);
Angle = arcsin(BC/Hyp);

¿Me podrían dar una ayuda con lo del ángulo? Hasta ahora va bien, pero algo me falta porque llega a 90° y comienza a bajar nuevamente el valor del ángulo, la idea sería que pueda calcular los 360°

Hola FernandoNavarro

Te recomiendo usar la función:
[gml]direction = point_direction(x,y,objEnemy.x,objEnemy.y)[/gml]
Que toma el ángulo que se forma entre 2 puntos y luego se lo asigna a la variable "direction".

Saludos