jeudi 29 juillet 2010

Bon ben ça y est, c'est codé...

Sénèque disait: "Ce n'est pas parce que les choses sont difficiles que nous n'osons pas, c'est parce que nous n'osons pas qu'elles sont difficiles". M'est avis qu'il était programmeur!

L'adage s'est donc vérifié, et ma routine de génération de route s'est gentiment codée, couvée des yeux par de nombreux test unitaires. Résultat: rien n'est prêt pour accueillir le bébé! Mon architecture n'est pas encore capable d'utiliser la routine, parce que je ne m'attendais pas à ce qu'elle fonctionne si tôt. Je revois donc mes diagrammes de classe, et essaie de caser la chose de manière naturelle.

Au passage, j'ai simplifié la méthode du post précédent sur le sujet.



Je calcule i, intersection des vecteurs de départ et d'arrivée. Je vérifie ensuite que i est devant le premier vecteur, et derrière le second. Ceci fait, je calcule les distances entre chaque vecteur et i. La plus petite distance devient d1, que je transfère de l'autre côté de i. Cette section sera ma section courbe, dont je calcule le centre en prenant les orthogonales qui se coupent en c. Le reste de la voie est une droite.

Cette méthode se contente donc de deux intersections, et de quelques calculs de distances et de vecteurs orthogonaux. Probablement suffisamment efficace pour la faire tourner en temps réel, pour que l'utilisateur puisse voir la trace de sa voie au fur et à mesure qu'il ajuste ses vecteurs.

Aucun commentaire: