Oulà, je me suis bien galéré, je viens d'aller voir la classe Random pour faire autre chose, et j'ai vu qu'il y avait un nextGaussian()... Voilà, donc il suffit d'appeler nextGaussian() :)
Type: Messages; Utilisateur: ®om
Oulà, je me suis bien galéré, je viens d'aller voir la classe Random pour faire autre chose, et j'ai vu qu'il y avait un nextGaussian()... Voilà, donc il suffit d'appeler nextGaussian() :)
Tu as réussi ?
Mais pourquoi tu castes en int?
C'est ton int qui arrondi par défaut, et donc diminue le résultat...
Tes coordonnées doivent être en double...
Cette matrice de rotation doit marcher pour les vecteurs de norme 1. Donc multiplie à chaque fois x' et y' par la norme du vecteur (Math.sqrt(x*x+y*y)).
EDIT: Euh, non, normalement la norme reste...
C'est normal :
resultat=(int)((((Math.random()*16)-8))*Math.PI/180);
Le résultat en double est entre 0 et 1, si tu le castes en int, ça fait 0...
Mais bon, c'est de ma faute, sur mon exemple,...
Ah et j'oubliais, une fois que tu as obtenu une nouvelle directection aléatoire, par interpolation, fait tourner ta flèche en animation, car sinon ça fera un changement brut de direction...
Pour avoir une valeur aléatoire entre 0 et 1 (suivant une loi uniforme), tu fais Math.random();. Pour l'avoir entre -8 et +8 (en dégres), et bien tu multiplies par 16 et tu enlèves 8.
Si tu veux...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.