JeuWeb - Crée ton jeu par navigateur
Calcul du chemin optimal pour un changement de direction - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Calcul du chemin optimal pour un changement de direction (/showthread.php?tid=6661)

Pages : 1 2


RE: Calcul du chemin optimal pour un changement de direction - niahoo - 22-02-2013

attendez je ne suis pas tres bien : j'ai l'impression avec vos formules que le nouveau cap (le point B, ex point C ^^) se trouve forcément sur le cercle de virage.

Mais si le nouveau point de destination est à mille bornes de là j'espère bien qu'on va pas suivre le cercle au lieu de faire un bête virage et de faire les 990 kilomètres restants en ligne droite, m'voyez ?


RE: Calcul du chemin optimal pour un changement de direction - Xenos - 22-02-2013

Justement, il se trouve sur le cercle de virage, donc il sera atteint. Une fois le point B atteint, on quitte le cercle et on part en ligne droite.
Si B est très loin le cercle sera juste très grand, donc on n'aura pas trop l'impression de tourner, mais on tournera quand même.

L'idée n'est plus de dire "je me tourne le plus vite possible pour aligner mon cap sur le point B", mais de dire "je tourne le plus lentement possible, pour atteindre B à l'exacte fin de mon virage". En tournant le plus lentement possible, on maximise la vitesse que l'on peut avoir (car je pense que ta fonction qui limite la vitesse de rotation est décroissante, autrement dit, plus le bateau est lent, plus il peut tourner). Donc, si le bateau a besoin de tourner que très très peu, en suivant le cercle, alors il pourra avoir la vitesse la plus grande qui lui soit possible.


RE: Calcul du chemin optimal pour un changement de direction - niahoo - 22-02-2013

Donc le point B n'est pas le point où on veut aller, mais juste un point de calcul intermédiaire, on est d'accord ?

Parce que si c'est pas ça:

Je suis au point A et je me dirige le long de la droite noire (en direction du haut)

Si a ma vitesse actuelle je peux prendre un virage suivant le cercle vert puis filer en ligne droite je n'ai pas de raison de suivre le cercle rouge !

[Image: bato.png]

Et ma requête est plus complexe : je veux déterminer si le cercle vert est plus intéressant, ou si en freinant un peu et en suivant un cercle plus petit, mon accélération me permettra de gagner du temps ensuite ...

Bon, je lâche l'affaire, ça fait trop de calculs pour un truc qui n'est pas primordial dans mon jeu. C'est intéressant je trouve comme calcul mais ça demande trop de variables, trop de temps de calcul pour mon serveur.

Je vais faire autrement, merci de votre aide !


RE: Calcul du chemin optimal pour un changement de direction - niahoo - 23-02-2013

Mais ce post est encore valide en fait, reste à le déchiffrer Smile


RE: Calcul du chemin optimal pour un changement de direction - Xenos - 23-02-2013

La réponse à ta question dépend de ta fonction donnant la vitesse de rotation maximale en fonction de la vitesse d'avancement du bateau.
Il est possible de faire le calcul pour une fonction générique quand même (je n'avais pas pensé au fait que tu puisse ré-accélérer pendant la ligne droite du cercle vert).
J'essayerai après avoir fait mes lasagnes (j'ai plutôt faim...)
D'instinct, je dirai que le cercle rouge est meilleur si ta fonction est inférieure à la fonction inverse ( rotation_max(vitesse_avancement) < k/vitesse_avancement), mais c'est de la pure spéculation.