es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Java, una forma de obtener el valor atan2 (alpha) desde un ángulo.

  double dx = mx - px;
    double dy = my - py;
    double alpha = Math.atan2(dy, dx);
    float angle = (float) Math.toDegrees(alpha);
    angle += 10;

Ahora quiero convertir el ángulo al valor de alpha (atan2), ¿hay alguna forma en que pueda hacer eso?

El propósito es que tengo un juego y quiero disparar balas con una variación del grado, como una escopeta.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, puedes convertir el ángulo de vuelta al valor alfa utilizando el siguiente código:

    float angleInRadians = (float) Math.toRadians(angle);
    double alpha = Math.atan2(Math.sin(angleInRadians), Math.cos(angleInRadians));
    

    Esto te dará el valor alfa original basado en el ángulo modificado.

    Para disparar balas con una variación en los grados, como en una escopeta, puedes generar aleatoriamente una pequeña variación en el ángulo para cada bala. Por ejemplo:

    Random rand = new Random();
    float variation = 10; // Variación de 10 grados
    for (int i = 0; i < numBullets; i++) {
      float variationAngle = (rand.nextFloat() * variation) - (variation / 2);
      float bulletAngle = angle + variationAngle;
      // Disparar bala en el ángulo bulletAngle
    }
    

    Esto disparará balas con ángulos ligeramente diferentes, creando un patrón disperso similar a una escopeta.

Comments are closed.