22-02-2013, 04:30 PM
Hello, vu qu'on a des matheux en ce moment sur le forum on va pouvoir en profiter
Je cherche à modéliser le déplacement d'un bateau, et notamment le changement de cap.
Premièrement mon beateau est à un point A et il se dirige vers un point B. Je lui donne l'ordre de changer de cap et de se diriger vers un point C.
Il faut donc que je calcule l'angle entre la droites A->B et celle définie par le segment (0:0, 1:0) qui est l'axe des abscisses, choisi arbitrairement.
Ensuite, je calcule l'angle entre l'axe abscisses et la droite A->C pour, grâce à une soustraction, savoir de quel angle je dois virer.
ça, c'est pas trop chaud je pense.
J'ai décidé arbitrairement pour la modélisation que pour pouvoir virer d'un angle inférieur à X degrés il fallait descendre à une vitesse inférieure à Y m/s, sinon on chavire. Cette donnée n'est pas utile pour le moment, disons que c'est une fonction qui donne la vitesse maxi en fonction de l'angle, max_vire(angle) -> vitesse_max.
Donc, au départ, sans aucune connaissance en navigation, voilà ce qu'on fait : On calcule l'angle comme précédemment, on calcule la vitesse maxi. On calcule le temps de décélération pour descendre à cette vitesse en fonction de la masse du véhicule et de la puissance d'éventuels freins, on calcule le temps d'alignement en fonction de la masse et de la vitesse actuelle, et voilà, on est aligné, on peut calculer le temps d'accélération pour venir à la vitesse maxi.
Vous avez suivi ? ou plus personne ne lis ce post ?
Bon mais ça c'était la méthode facile. Parce qu'un navigateur expérimenté saura qu'on peut gagner du temps en tournant plus lentement mais en freinant beaucoup moins, c'est à dire en définissant Z cap intermédiaires et en répétant le processus décrit ci dessus pour chacun de ces cap.
Donc, pour les matheux, comment calculer ces caps intermédiaires ? Je voudrais en bonus pouvoir choisir le nombre de ces caps afin de refléter la compétence en navigation d'un personnage. (en gros par défaut on mets deux caps intermédiaires, et selon le level du perso on en calcule juqu'à 10 par exemple)
Merci si vous pouvez au moins me donner une piste
Je cherche à modéliser le déplacement d'un bateau, et notamment le changement de cap.
Premièrement mon beateau est à un point A et il se dirige vers un point B. Je lui donne l'ordre de changer de cap et de se diriger vers un point C.
Il faut donc que je calcule l'angle entre la droites A->B et celle définie par le segment (0:0, 1:0) qui est l'axe des abscisses, choisi arbitrairement.
Ensuite, je calcule l'angle entre l'axe abscisses et la droite A->C pour, grâce à une soustraction, savoir de quel angle je dois virer.
ça, c'est pas trop chaud je pense.
J'ai décidé arbitrairement pour la modélisation que pour pouvoir virer d'un angle inférieur à X degrés il fallait descendre à une vitesse inférieure à Y m/s, sinon on chavire. Cette donnée n'est pas utile pour le moment, disons que c'est une fonction qui donne la vitesse maxi en fonction de l'angle, max_vire(angle) -> vitesse_max.
Donc, au départ, sans aucune connaissance en navigation, voilà ce qu'on fait : On calcule l'angle comme précédemment, on calcule la vitesse maxi. On calcule le temps de décélération pour descendre à cette vitesse en fonction de la masse du véhicule et de la puissance d'éventuels freins, on calcule le temps d'alignement en fonction de la masse et de la vitesse actuelle, et voilà, on est aligné, on peut calculer le temps d'accélération pour venir à la vitesse maxi.
Vous avez suivi ? ou plus personne ne lis ce post ?
Bon mais ça c'était la méthode facile. Parce qu'un navigateur expérimenté saura qu'on peut gagner du temps en tournant plus lentement mais en freinant beaucoup moins, c'est à dire en définissant Z cap intermédiaires et en répétant le processus décrit ci dessus pour chacun de ces cap.
Donc, pour les matheux, comment calculer ces caps intermédiaires ? Je voudrais en bonus pouvoir choisir le nombre de ces caps afin de refléter la compétence en navigation d'un personnage. (en gros par défaut on mets deux caps intermédiaires, et selon le level du perso on en calcule juqu'à 10 par exemple)
Merci si vous pouvez au moins me donner une piste