Page 1 sur 1

[R] Tracer de lignes

Posté : lun. 19 janv. 2009 17:17
par genaille08
Rebijour,

Alors cette fois je voudrais que mon script cherche deux pixel de même couleur, trace une ligne (virtuelle) entre chaque et déplace la souris en suivant la ligne (comme sur un vecteur) et dès qu'il rencontre un pixel de couleur orange, vienne cliquer dessus; or je n'ai aucune idée de comment tracer une ligne entre ces deux points.

Cordialement

Re: [...] Tracer de lignes

Posté : lun. 19 janv. 2009 17:35
par jbnh
Je n'ai rien compris, prend le temps de t'exprimer faisant plusieurs phrase, en redéfinissant mieux 'ligne virtuelle', etc.

Re: [...] Tracer de lignes

Posté : lun. 19 janv. 2009 18:03
par genaille08
et bien pour ligne "virtuel" en faite je veux tout simplement que le ligne n'apparaisse pas a l'écran

ensuite voici une image fabriquer de ce que je veux que la souris fasse XD bonne chance

Re: [..] Tracer de lignes

Posté : mar. 20 janv. 2009 08:11
par Tlem
Je ne crois pas qu'il existe une fonction toute faite pour vous.
Cela dit le problème n'est pas si complexe qu'il en à l'air de prime abord.

- Vous avez les coordonnées du point 1 (X1, Y1) et du point 2 (X2, Y2).
- Vous voulez analyser les pixels en partant du point 1 et en allant vers le point 2.

Le première chose à faire, c'est d'analyser les coordonnées séparant le point 1 et le point 2.
En théorie (mais il faudra affiner au cas ou les coordonnées du point 2 sont moins grandes) si vous faites :
  • X2 - X1 = X3
  • Y2 - Y1 = Y3
Vous obtenez deux valeurs. Ces valeurs sont les valeurs qui sépare les deux points. Donc si vous divisez ces valeurs pas la plus grande valeur des deux, vous obtiendrez deux nombres (X4 et Y4) qui pourront être utilisés pour 'créer votre ligne de recherche virtuelle'.
Le fait de diviser par la plus grande valeur, permet de rendre les valeurs proportionnelle (il faudra bien avancer en droite ligne du point 1 vers le point 2).

Les nombres X4 et Y4 vous serviront pour le Step de la boucle d'incrémentation des coordonnées du point 1.
En incrémentant X1 et Y1 des deux valeurs proportionnelles X4 et Y4, vous vous déplacez vers les coordonnées du point 2 et donc vous suivez votre ligne virtuelle. ;)

J'espère que mon explication n'a pas été trop technique, mais ce n'est pas facile à expliquer.

Re: [..] Tracer de lignes

Posté : mar. 20 janv. 2009 18:13
par genaille08
Lol je viens de prendre une blinde de math mais oui j'ai compris je vais tenter.
Finalement la solution n'était pas si dur que ca mais il fallait y penser.

Merci je reviendrais avec la solution en forme de script si j'y a arrive

P.S. : Oui c'est une doite ligne ^^.

Re: [..] Tracer de lignes

Posté : mer. 21 janv. 2009 15:07
par genaille08
Désolé du double post mais je voulais uper.
Cela ne marche pas bon je vous preésente mon bout de post mais n'est pas présenté :$.

Code : Tout sélectionner

Dim $coord[2], $coord1[2], $coord3, $coord4, $var

WinActivate ( "C:\Users\Evan\Desktop\Sans titre2.jpg" )
Sleep ( 1000 )

while 1
    $a = PixelSearch ( 0, 0, 1920, 1080, 0xE02A41 )
    if not @error then $b = PixelSearch ( 0, 0, 1920, 1080, 0xB6E348 )
    if not @error then 
        $m1 = $b[1] - $a[1]
        $m2 = $b[0] - $a[0]
        $var = $m2 / $m1
        while 1
            $a[1] = $a[1] + ($var*5)
            $a[0] = $a[0] - ($var*5)
            MouseMove ( $a[0], $a[1] )
            $mousepos = MouseGetPos ()
            $color = PixelGetColor ( $mousepos[0], $mousepos[1] )
            If $color = "0xFFC62A" Then
                MsgBox ( 0, "", "la" )
                Exit
            EndIf
        WEnd
    EndIf
WEnd
Donc regardez sur l'image en faite la souris descend beaucoup trop et loupe la ligne orange ( elle passe en dessous )

Je pense que vous n'avez pas une résolution de 1920 par 1080 donc pour tester je pense qu'il vous faudra adapter mais je pense que l'erreur est toute bete et que vous saurez la trouvé.
merci d'avance.

Voici l'image sur laquelle j'ai tester ( ouverte avec IE7).

video de mon bot

Edit : Et beh j'ai eu du mal a trouver d'ou venez le probleme mais j'y suis arriver
Je ne sais pas a quoi je penser a ce moment la, J'ai du repenser a mon enorme ecran avec sa mega résolution toute ... RECTANGLE.
Comme avec les plus innovantes inventions que l'on trouve en science, j'ai trouver cela par accident
Bon pour etre clair il suffisait de multiplier notre coefficient directeur une fois par 1920 et une fois par 1080 (dans mon cas )et dire que ca fait 1 journée que je me casse la tete avec ce probleme

Bon aller résolut !!!
Merci encore

Re: [R] Tracer de lignes

Posté : mer. 21 janv. 2009 23:22
par Tlem
Je vois que tolf à modifié le post, mais j'en remet une petite couche. ;)
La coloration syntaxique du code est réservée aux forums :
  • - Exemples de script
    - Fonctions et UDF
    - Tutoriels
Voici une ébauche fonctionnelle du script (à affiner peut être), qui prend en compte le sens du mouvement en fonction des coordonnées du point A et B.

Le voici tel quel avec les couleurs adaptée à l'affichage de l'image Sans Titre 2 sur mon IE.
► Afficher le texteLe Code