Partage
  • Partager sur Facebook
  • Partager sur Twitter

problème d'algorythme

où se trouve mon point?

Sujet résolu
    15 janvier 2011 à 18:48:06

    Bonjour,

    Mon problème concerne plutôt l'algorithmique que la Java, mais n'ayant pas trouvé de forum sur ce thème est mon programme étant en Java, j'ai posté ici.
    Je cherche donc à savoir où se situe un point donc on connait les coordonnées par rapport à un autre point, dont on connait également l'emplacement.
    Un petit schéma fait maison pour illustrer le problème :)
    Image utilisateur

    Nous connaissons donc le point A, et nous voulons savoir si le point B et le point C se situent dans la zone ayant un angle de 125°. (le point B y est mais pas le point C).

    J'ai trouvé un algorithme qui fonctionne. Mais j'ai utilisé des connaissances mathématiques basiques, je pense donc qu'il existe une autre façon plus optimisée de résoudre ce problème. Il y a certainement des formules que je ne connais pas qui peuvent m'être utile... je vous poste donc mon algo, et je suis preneur si vous trouvez une solution plus optimisée :)

    l'algo

    On place un point D(XA, YB)
    on a donc un triangle rectangle ABD
    on calcule les distance AB et AD à l'aide des coordonnées des points.
    et on fait cos-1(AD/AB), ce qui nous donne l'angle BAD.
    Si il est inférieur à 125/2 = 62.50°, le point B est dans la zone, sinon il ne l'est pas.


    J'aurais besoin de faire ce calcul un assez grand nombre de fois en peu de temps, il me faut donc l'optimiser.

    merci d'avance pour vos réponses ;)
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      15 janvier 2011 à 19:35:19

      plus simplement,

      tout d'abord un test By > Ay

      si il est vrai, il suffit de se dire que le triangle suit un ratio constant, plus le point est éloigné de Ax, plus son Ay doit être élevé pour être contenu, trouve ce ratio et ton test sera juste:

      if(By > |Bx - Ax| * ratio){//dedans}
      • Partager sur Facebook
      • Partager sur Twitter
        16 janvier 2011 à 9:54:23

        Merci, ça devrait marcher. Je cherche ce ratio et je te tiens au courant ;)

        edit: le ratio est de 0.5 et ça fonctionne ;)
        • Partager sur Facebook
        • Partager sur Twitter

        problème d'algorythme

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown