Tracer une droite dans un quadrillage
Bonjour,
je fais appel à vous car je suis en face d'un problème, et je ne sais pas quels sont les outils Python avec lesquels je peux le résoudre... Je m'explique :
On considère un mobile qui se déplace dans un espace 2D. On discrétise cet espace par pas de 1 mètre (par exemple), on obtient donc un quadrillage (une matrice en fait). Toutes les secondes, on récupère une information sur le mobile : une direction, en degrés, qui correspond à la direction probable d'une antenne émettrice (je ne m'étends pas sur le sujet, on sait que l'on peut récupérer cette info).
J'aimerais pouvoir, à chaque seconde, tracer une droite dans mon quadrillage correspondant à la direction récupérée, et incrémenter de 1 chacune des cases que ma droite traverse. Ainsi, si on répète ce procédé sur plusieurs secondes, on sait que les cases qui ont la plus grande valeur correspondent à l'endroit le plus probable où se trouve mon antenne émettrice.
Comment puis-je résoudre un problème pareil sous Python ? Y a-t-il des outils adaptés pour le traiter (c'est un problème plus "graphique" que calculatoire...) ?
Merci d'avance pour votre réponse. :)
Tracer une droite d'après un angle
Bonjour,
on considère une grille définie par les vecteurs x = [0, 1, 2, ..., 100] et y = [0, 1, 2, ..., 100].
J'ai un point de coordonnées (x0, y0), et un angle θ donné (en degrés, pas rapport au nord).
J'aimerais pouvoir récupérer les coordonnées des points composant la droite qui part de (x0, y0) avec l'angle θ, et uniquement ceux contenus dans ma grille (autrement dit dont les coordonnées sont entre 0 et 100).
Comment puis-je faire pour obtenir un tel résultat ?
J'avais réussi à obtenir quelque chose, mais ça prend bien trop de temps... En fait, je cherchais un deuxième point que la droite traverse, puis j'appliquais l'algorithme de Bresenham entre ces deux points, mais généralement le deuxième point est en dehors de ma grille alors c'est un peu le bordel, il faut ensuite jeter tous ces points et on les a calculés pour rien... S'il y a une méthode pour ne pas avoir à passer par du Bresenham entre deux points, je suis preneur. :)
D'avance merci.