Page 1 of 1

Comparer la position de deux images

Posted: 15 Mar 2014, 23:04
by JUSKATOI
Bonsoir,

J'airais besoin de votre aides s'il vous plait:
Je souhaite comparer les positions relative de deux image: savoir si une image trouvée est plus à gauche ou plus à droite de la deuxième image trouvée.
Pour ce faire j'ai créé deux variables de position, deux recherche d'images avec renvoi de la position vers les variables respectives.
J'aimerais ensuite comparer les coordonnées de ces deux images (en x notamment).
Est-il possible à partir de la variable position d'extraire la valeur de x (coordonnées horizontale) sous forme de valeur? Ceci afin de les comparer dans une variable conditionnelle.

Merci d'avance pour votre aide.

Cordialement

Re: Comparer la position de deux images

Posted: 17 Mar 2014, 22:42
by Jmgr
Salut,

J'ai déplacé le sujet dans la bonne section (Actionaz 3 - Aide).
Est-il possible à partir de la variable position d'extraire la valeur de x (coordonnées horizontale) sous forme de valeur? Ceci afin de les comparer dans une variable conditionnelle.
Oui, il s'agit de variables de type Point : http://wiki.actionaz.org/doku.php?id=fr:code:core:point
En code, tu peux donc accéder à x et y avec monPoint.x et monPoint.y.

Re: Comparer la position de deux images

Posted: 18 Mar 2014, 13:18
by JUSKATOI
Bonjour,

Merci pour votre réponse. Je n'y connais pas grand chose en code. Concrètement que faut-il que j'écrive dans le code svp?
Ma variable de position image est par exemple Point [x: 232][y: 585].
j'aimerais obtenir une variable X égale à 232 (pour cet exemple) et une variable Y égale à 585.

Merci beaucoup par avance.

Re: Comparer la position de deux images

Posted: 18 Mar 2014, 13:53
by Jmgr
Voilà un exemple : (Fichier->Importer->Contenu du script)

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<scriptfile>
    <settings program="actionaz" version="3.8.0" scriptVersion="1.1.0" os="Windows"/>
    <actions>
        <action name="ActionMessageBox" version="1.0.0"/>
        <action name="ActionVariable" version="1.0.0"/>
        <action name="ActionCode" version="1.0.0"/>
    </actions>
    <parameters/>
    <resources/>
    <script pauseBefore="0" pauseAfter="0">
        <action name="ActionVariable" comment="Création de la variable">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <exception id="32" action="0" line=""/>
            <parameter name="colorValue">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="variable">
                <subParameter name="value" code="0">p</subParameter>
            </parameter>
            <parameter name="type">
                <subParameter name="value" code="0">position</subParameter>
            </parameter>
            <parameter name="value">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="positionValue">
                <subParameter name="unit" code="0">0</subParameter>
                <subParameter name="value" code="0">42:42</subParameter>
            </parameter>
        </action>
        <action name="ActionCode" comment="Modification des valeurs de x et y">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="code">
                <subParameter name="value" code="1">p.x = 232
p.y = 585</subParameter>
            </parameter>
        </action>
        <action name="ActionMessageBox" comment="Affichage">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="windowIcon">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="message">
                <subParameter name="value" code="0">$p</subParameter>
            </parameter>
            <parameter name="title">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="textMode">
                <subParameter name="value" code="0">automatic</subParameter>
            </parameter>
            <parameter name="ifYes">
                <subParameter name="line" code="0"></subParameter>
                <subParameter name="action" code="0">do_nothing</subParameter>
            </parameter>
            <parameter name="customIcon">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="icon">
                <subParameter name="value" code="0">none</subParameter>
            </parameter>
            <parameter name="type">
                <subParameter name="value" code="0">ok</subParameter>
            </parameter>
            <parameter name="ifNo">
                <subParameter name="line" code="0"></subParameter>
                <subParameter name="action" code="0">do_nothing</subParameter>
            </parameter>
        </action>
    </script>
</scriptfile>
Par contre pour la comparaison tu ne pourras pas utiliser l'action condition de variable directement vu qu'il s'agit d'un type complexe. (par comparaison avec un type simple : nombre ou chaîne de caractères)
Tu as donc deux solutions possibles pour la comparaison :
  • Créer des variables intermédiaires, par exemple :

    Code: Select all

    <?xml version="1.0" encoding="UTF-8"?>
    <scriptfile>
        <settings program="actionaz" version="3.8.0" scriptVersion="1.1.0" os="Windows"/>
        <actions>
            <action name="ActionMessageBox" version="1.0.0"/>
            <action name="ActionVariable" version="1.0.0"/>
        </actions>
        <parameters/>
        <resources/>
        <script pauseBefore="0" pauseAfter="0">
            <action name="ActionVariable" comment="Création de p1">
                <exception id="0" action="0" line=""/>
                <exception id="1" action="0" line=""/>
                <exception id="2" action="1" line=""/>
                <exception id="32" action="0" line=""/>
                <parameter name="colorValue">
                    <subParameter name="value" code="0"></subParameter>
                </parameter>
                <parameter name="variable">
                    <subParameter name="value" code="0">p1</subParameter>
                </parameter>
                <parameter name="positionValue">
                    <subParameter name="unit" code="0">0</subParameter>
                    <subParameter name="value" code="0">232:585</subParameter>
                </parameter>
                <parameter name="value">
                    <subParameter name="value" code="0"></subParameter>
                </parameter>
                <parameter name="type">
                    <subParameter name="value" code="0">position</subParameter>
                </parameter>
            </action>
            <action name="ActionVariable" comment="p1x = p1.x">
                <exception id="0" action="0" line=""/>
                <exception id="1" action="0" line=""/>
                <exception id="2" action="1" line=""/>
                <exception id="32" action="0" line=""/>
                <parameter name="colorValue">
                    <subParameter name="value" code="0"></subParameter>
                </parameter>
                <parameter name="variable">
                    <subParameter name="value" code="0">p1x</subParameter>
                </parameter>
                <parameter name="type">
                    <subParameter name="value" code="0">float</subParameter>
                </parameter>
                <parameter name="value">
                    <subParameter name="value" code="1">p1.x</subParameter>
                </parameter>
                <parameter name="positionValue">
                    <subParameter name="unit" code="0">0</subParameter>
                    <subParameter name="value" code="0"></subParameter>
                </parameter>
            </action>
            <action name="ActionMessageBox">
                <exception id="0" action="0" line=""/>
                <exception id="1" action="0" line=""/>
                <exception id="2" action="1" line=""/>
                <parameter name="windowIcon">
                    <subParameter name="value" code="0"></subParameter>
                </parameter>
                <parameter name="message">
                    <subParameter name="value" code="0">$p1x</subParameter>
                </parameter>
                <parameter name="title">
                    <subParameter name="value" code="0"></subParameter>
                </parameter>
                <parameter name="textMode">
                    <subParameter name="value" code="0">automatic</subParameter>
                </parameter>
                <parameter name="ifYes">
                    <subParameter name="line" code="0"></subParameter>
                    <subParameter name="action" code="0">do_nothing</subParameter>
                </parameter>
                <parameter name="customIcon">
                    <subParameter name="value" code="0"></subParameter>
                </parameter>
                <parameter name="icon">
                    <subParameter name="value" code="0">none</subParameter>
                </parameter>
                <parameter name="type">
                    <subParameter name="value" code="0">ok</subParameter>
                </parameter>
                <parameter name="ifNo">
                    <subParameter name="line" code="0"></subParameter>
                    <subParameter name="action" code="0">do_nothing</subParameter>
                </parameter>
            </action>
        </script>
    </scriptfile>
    
  • Utiliser un bout de code :

    Code: Select all

    <?xml version="1.0" encoding="UTF-8"?>
    <scriptfile>
        <settings program="actionaz" version="3.8.0" scriptVersion="1.1.0" os="Windows"/>
        <actions>
            <action name="ActionStop" version="1.0.0"/>
            <action name="ActionVariable" version="1.0.0"/>
            <action name="ActionCode" version="1.0.0"/>
        </actions>
        <parameters/>
        <resources/>
        <script pauseBefore="0" pauseAfter="0">
            <action name="ActionVariable" comment="Création de p1">
                <exception id="0" action="0" line=""/>
                <exception id="1" action="0" line=""/>
                <exception id="2" action="1" line=""/>
                <exception id="32" action="0" line=""/>
                <parameter name="colorValue">
                    <subParameter name="value" code="0"></subParameter>
                </parameter>
                <parameter name="variable">
                    <subParameter name="value" code="0">p1</subParameter>
                </parameter>
                <parameter name="positionValue">
                    <subParameter name="unit" code="0">0</subParameter>
                    <subParameter name="value" code="0">232:585</subParameter>
                </parameter>
                <parameter name="value">
                    <subParameter name="value" code="0"></subParameter>
                </parameter>
                <parameter name="type">
                    <subParameter name="value" code="0">position</subParameter>
                </parameter>
            </action>
            <action name="ActionCode">
                <exception id="0" action="0" line=""/>
                <exception id="1" action="0" line=""/>
                <exception id="2" action="1" line=""/>
                <parameter name="code">
                    <subParameter name="value" code="1">if(p1.x > 300)
    	Script.nextLine = 1
    else
    	Script.nextLine = "stop"</subParameter>
                </parameter>
            </action>
            <action name="ActionStop" label="stop">
                <exception id="0" action="0" line=""/>
                <exception id="1" action="0" line=""/>
                <exception id="2" action="1" line=""/>
            </action>
        </script>
    </scriptfile>
    

Re: Comparer la position de deux images

Posted: 18 Mar 2014, 22:16
by JUSKATOI
Merci beaucoup pour votre aide. J'ai enfin réussi à faire ce que je voulais. Actionaz est un outil génial.